一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像编码方法和设备以及图像解码方法和设备与流程

2022-06-16 13:12:45 来源:中国专利 TAG:


1.本公开涉及图像处理领域,并且更具体地,涉及用于通过使用深度神经网络(dnn)对图像进行编码和解码的设备和方法。


背景技术:

2.使用符合预定义的数据压缩标准(诸如运动图像专家组(mpeg)标准等)的编解码器对图像进行编码,然后将编码的图像存储在记录介质中或通过通信通道以比特流的形式发送编码的图像。
3.随着能够再现和存储高分辨率/高清晰度图像的硬件的开发和传播,对能够对高分辨率/高清晰度图像进行有效的编码和解码的编解码器的需求日益增加。


技术实现要素:

4.技术方案
5.提供了用于通过使用深度神经网络(dnn)以低比特率对图像进行编码和解码的方法和设备。
6.此外,一种计算机可读记录介质,其中,在其上记录有用于在计算机上执行根据本公开的实施例的图像编码方法和图像解码方法的程序。
7.另外的方面将部分地在下面的描述中被阐述,并且部分地将从描述中显而易见,或者可通过实践本公开的所呈现的实施例被学习。
8.根据实施例,提供了一种图像解码方法,包括:获得指示是否更新一条或更多条深度神经网络(dnn)设置信息的dnn更新许可信息;基于所述dnn更新许可信息指示更新所述一条或更多条dnn设置信息,获得确定被更新的一条或更多条dnn设置信息所必需的dnn更新信息;根据所述dnn更新信息确定所述一条或更多条更新的dnn设置信息;并且通过根据所述一条或更多条更新的dnn设置信息对第二图像执行人工智能(ai)放大来获得第三图像。
9.所述图像解码方法还包括:基于所述dnn更新许可信息指示不更新所述一条或更多条dnn设置信息,通过根据一条或更多条默认dnn设置信息对所述第二图像执行ai放大来获得所述第三图像。
10.所述dnn更新信息包括指示所述一条或更多条更新的dnn设置信息的数量的dnn数量信息,以及其中,确定所述一条或更多条更新的dnn设置信息的步骤包括:确定所述一条或更多条更新的dnn设置信息的数量是否与由所述dnn数量信息指示的所述一条或更多条更新的dnn设置信息的数量相匹配。
11.所述dnn更新信息还包括以下信息中的至少一个:指示包括在dnn中的层的数量的层数信息、指示所述层中的每一个层中的输入通道的数量的输入通道信息、指示每一个层中的输出通道的数量的输出通道信息、指示每一个层中的滤波器核的大小的滤波器核大小信息、指示所述滤波器核的权重的权重信息、或者指示用于调整所述滤波器核的输出的偏
置的偏置信息。
12.获得所述dnn更新信息的步骤包括:获得指示默认dnn的结构是否被重新用于所述更新的dnn设置信息的默认dnn重用许可信息;以及基于所述默认dnn重用许可信息指示所述默认dnn的结构被重新用于所述更新的dnn设置信息,获得参考dnn索引信息,其中,所述参考dnn索引信息指示信息被重新使用的所述默认dnn的索引,以及其中,确定所述一条或更多条更新的dnn设置信息的步骤包括:基于所述默认dnn重用许可信息指示所述默认dnn的结构被重新用于所述更新的dnn设置信息,根据由所述参考dnn索引信息指示的所述默认dnn的结构和所述dnn更新信息来确定所述一条或更多条更新的dnn设置信息。
13.确定所述一条或更多条更新的dnn设置信息的步骤还包括:根据由所述参考dnn索引信息指示的所述默认dnn中的默认层的数量、所述默认层中的每一个默认层中的默认输入通道的数量、每一个默认层中的输出通道的数量、以及每一个默认层的滤波器核的大小来确定层的数量、所述层中的每一个层中的输入通道的数量、每一个层中的输出通道的数量、以及每一个层的滤波器核的大小,并且根据所述dnn更新信息确定所述更新的dnn设置信息中的滤波器核的权重和偏置。
14.所述dnn更新信息包括指示滤波器核的权重的权重信息或者指示用于调整滤波器核的输出的偏置的偏置信息中的至少一个,所述权重信息指示分别在所述默认dnn和更新的dnn中的权重之间的差,以及所述偏置信息指示分别在所述默认dnn和所述更新的dnn中的偏置之间的差。
15.针对帧组执行获得所述dnn更新许可信息、获得所述dnn更新信息、以及确定所述一条或更多条更新的dnn设置信息的步骤,其中,所述帧组是包括多个帧的编码视频序列,并且其中,获得所述第三图像的步骤包括:针对所述帧组中的帧,基于所述一条或更多条更新的dnn设置信息来确定用于所述帧的更新的dnn设置信息;以及通过根据用于所述帧的更新的dnn设置信息对所述帧中的所述第二图像执行ai放大来获得所述帧中的所述第三图像。
16.获得所述第三图像的步骤包括:针对帧,基于所述一条或更多条更新的dnn设置信息来获得指示用于所述帧的更新的dnn设置信息的dnn索引信息;根据所述dnn索引信息,基于所述一条或更多条更新的dnn设置信息来确定用于所述帧的更新的dnn设置信息;获得次级dnn更新许可信息,其中,所述次级dnn更新许可信息指示是否将执行对用于所述帧的更新的dnn设置信息的次级更新;基于所述次级dnn更新许可信息指示将执行对用于所述帧的更新的dnn设置信息的次级更新,获得次级dnn更新信息;以及通过使用根据所述次级dnn更新信息而确定的次级更新的dnn设置信息对所述第二图像执行ai放大来获得所述第三图像。
17.根据实施例,提供了一种图像解码方法,包括:针对多个帧中的帧,获得深度神经网络(dnn)索引信息,其中,所述dnn索引信息指示多条默认dnn设置信息之中的用于对第二图像进行放大的一条或更多条默认dnn设置信息;获得指示是否更新由所述dnn索引信息指示的所述默认dnn设置信息的dnn更新许可信息;基于所述dnn更新许可信息指示更新所述默认dnn设置信息,获得确定被更新的一条或更多条dnn设置信息所必需的dnn更新信息;根据所述dnn更新信息确定所述一条或更多条更新的dnn设置信息;并且通过根据所述一条或更多条更新的dnn设置信息对所述帧中的第二图像执行人工智能(ai)放大来获得所述帧中
的第三图像。
18.根据实施例,提供了一种图像解码设备,包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行存储在所述存储器中的所述一个或更多个指令以进行以下操作:获得指示是否更新一条或更多条深度神经网络(dnn)设置信息的dnn更新许可信息;基于所述dnn更新许可信息指示更新所述一条或更多条dnn设置信息,获得确定被更新的一条或更多条dnn设置信息所必需的dnn更新信息;根据所述dnn更新信息确定所述一条或更多条更新的dnn设置信息;以及通过根据所述一条或更多条更新的dnn设置信息对第二图像执行人工智能(ai)放大来获得第三图像。
19.根据实施例,提供了一种非暂时性计算机可读记录介质,在其上记录有用于执行权利要求1所述的图像解码方法的程序。
20.根据实施例,提供了一种存储人工智能(ai)数据的非暂时性计算机可读记录介质,其中,所述ai数据包括指示是否更新一条或更多条深度神经网络(dnn)设置信息的dnn更新许可信息,基于所述dnn更新许可信息指示更新所述一条或更多条dnn设置信息,所述ai数据还包括:确定被更新的一条或更多条dnn设置信息所必需的dnn更新信息,以及指示所述更新的dnn设置信息是否被用于基于所述一条或更多条更新的dnn设置信息对第二图像进行放大的dnn索引信息。
21.所述dnn更新信息包括指示所述一条或更多条更新的dnn设置信息的数量的dnn数量信息,以及其中,所述dnn索引信息指示所述一条或更多条更新的dnn设置信息的数量是否与由所述dnn数量信息指示的所述一条或更多条更新的dnn设置信息的数量相匹配。
22.所述dnn更新信息包括以下信息中的至少一个:指示包括在dnn中的层的数量的层数信息、指示所述层中的每一个层中的输入通道的数量的输入通道信息、指示每一个层中的输出通道的数量的输出通道信息、指示每一个层中的滤波器核的大小的滤波器核大小信息、指示滤波器核的权重的权重信息、或者指示用于调整所述滤波器核的输出的偏置的偏置信息。
23.所述dnn更新信息还包括:指示默认dnn的结构是否被重新用于所述更新的dnn设置信息的默认dnn重用许可信息;以及当所述默认dnn重用许可信息指示所述默认dnn的结构被重新用于所述更新的dnn设置信息时,所述dnn更新信息还包括参考dnn索引信息,其中,所述参考dnn索引信息指示信息被重新使用的所述默认dnn的索引,并且所述dnn更新信息还包括与由所述参考dnn索引信息指示的默认dnn的结构不被重新用于的dnn设置信息的更新相关的信息。
24.由所述参考dnn索引信息指示的所述默认dnn的结构被重新用于的dnn设置信息包括:所述默认dnn中的层的数量、所述层中的每一个层中的输入通道的数量、每一个层中的输出通道的数量、以及每一个层的滤波器核的大小,其中,由所述参考dnn索引信息指示的所述默认dnn的结构不被重新用于的dnn设置信息包括所述滤波器核的权重和偏置。
25.所述dnn更新信息包括指示所述滤波器核的所述权重的权重信息或者指示用于调整所述滤波器核的输出的偏置的偏置信息中的至少一个,其中,所述权重信息指示默认dnn中的权重与更新的dnn中的权重之间的差,以及其中,所述偏置信息指示所述默认dnn中的偏置与所述更新的dnn中的偏置之间的差。
26.针对包括多个帧的帧组设置所述dnn更新许可信息和所述dnn更新信息,以及其
中,针对所述帧组中的所述多个帧中的每一个帧设置所述dnn索引信息。
27.针对帧组中的多个帧中的每一个帧设置所述dnn索引信息,以及其中,ai数据还包括:指示是否将执行对根据所述dnn索引信息而确定的更新的dnn设置信息的次级更新的次级dnn更新许可信息,以及当所述次级dnn更新许可信息指示将执行对根据所述dnn索引信息而确定的更新的dnn设置信息的次级更新时,确定用于对所述第二图像进行放大的次级更新的dnn设置信息所必需的次级dnn更新信息。
附图说明
28.通过以下结合附图的描述,本公开的某些实施例的上述和其他方面、特征和优点将更加明显,其中:
29.图1是用于描述根据实施例的人工智能(ai)编码处理和ai解码处理的示图;
30.图2是根据实施例的ai解码设备的框图;
31.图3是示出根据实施例的用于对第二图像执行ai放大的第二深度神经网络(dnn)的示图;
32.图4是用于描述根据实施例的通过卷积层的卷积运算的示图;
33.图5是示出根据实施例的若干条图像相关信息与若干条dnn设置信息之间的映射关系的表;
34.图6是示出根据实施例的包括多个帧的第二图像的示图;
35.图7是根据实施例的ai编码设备的框图;
36.图8是示出根据实施例的用于对原始图像执行ai缩小的第一dnn的示图;
37.图9是用于描述根据实施例的训练第一dnn和第二dnn的方法的示图;
38.图10是用于描述根据实施例的由训练设备对第一dnn和第二dnn的训练处理的序列流程图;
39.图11是根据实施例的用于对原始图像执行ai缩小的设备和用于对第二图像执行ai放大的设备的示图;
40.图12示出根据实施例的卷积层的结构;
41.图13示出根据实施例的图12的卷积层中的第一滤波器核和第二滤波器核的权重和偏置;
42.图14示出根据实施例的图像数据和ai数据的结构以及图像数据和ai数据之间的相应关系;
43.图15示出根据实施例的ai数据和图像数据在单个文件中彼此分开的情况下的ai编码数据;
44.图16示出根据实施例的ai数据在单个文件中被嵌入图像数据中的情况下的ai编码数据;
45.图17是根据实施例的包括与图2的ai解码设备的ai放大器相比具有更详细功能的ai放大器的ai解码设备的框图;
46.图18示出根据实施例的用于基于每个视频更新dnn设置信息的dnn设置信息确定方法;
47.图19示出根据实施例的用于基于每个视频更新一条或更多条dnn设置信息的dnn
设置信息确定方法;
48.图20示出根据实施例的用于基于每个视频并且基于每个帧组更新一条或更多条dnn设置信息的dnn设置信息确定方法;
49.图21示出根据实施例的用于基于每个视频并且基于每个帧组更新一条或更多条dnn设置信息的dnn设置信息确定方法;
50.图22示出根据实施例的用于基于每个帧更新dnn设置信息的dnn设置信息确定方法;
51.图23示出根据实施例的包括ai目标数据和ai辅助数据的数据结构以及包括与dnn设置信息的更新相关的ai数据的数据结构;
52.图24示出根据实施例的包括与dnn设置信息的更新相关的ai数据的数据结构;
53.图25示出根据实施例的包括与dnn设置信息的更新相关的ai数据的数据结构;
54.图26示出根据实施例的实现图23的包括与dnn设置信息的更新相关的ai数据的数据结构的ai编解码器高级语法;
55.图27示出根据实施例的包括与针对帧或帧组的dnn设置信息的更新相关的ai数据的数据结构;
56.图28示出根据实施例的实现图27的包括与dnn设置信息的更新相关的ai数据的数据结构的ai编解码器高级语法;
57.图29是根据实施例的由ai解码设备执行的图像解码方法的流程图;以及
58.图30是根据实施例的图像解码设备的框图。
具体实施方式
59.由于本公开允许各种改变和许多示例,因此将在附图中示出并在书面描述中详细描述特定实施例。然而,这并不旨在将本公开限制于实践的特定模式,并且将理解,不脱离本公开的精神和技术范围的全部改变、等同和替代都被包含在本公开中。
60.在实施例的描述中,当对相关技术的特定详细解释可能不必要地使本公开的本质模糊时,省略这样的解释。此外,在描述中使用的数字(例如,第一、第二等)仅是用于将一个元素与另一元素区分开的标识标注。
61.贯穿本公开,表述“a、b或c中的至少一个”包括仅a、仅b、仅c、a和b两者、a和c两者、b和c两者、a、b和c全部或者它们的变型形式。
62.此外,在本公开中,将理解,当元件彼此“连接”或“结合”时,所述元件可彼此直接连接或结合,但是可选地,除非另有指定,否则可通过所述元件之间的中间元件彼此连接或结合。
63.在本公开中,对于被表示为“单元”或“模块”的元件,可将两个或更多个元件组合为一个元件,或者可根据细分的功能将一个元件划分为两个或更多个元件。此外,在下文中描述的每一个元件除了其主要功能之外,还可另外执行由另一元件执行的一些或全部功能,并且每一个元件的一些主要功能可完全由另一组件来执行。
64.此外,在本公开中,“图像”或“画面”可表示静止图像、包括多个连续静止图像(或帧)的运动图像、或者视频。
65.此外,在本公开中,深度神经网络(dnn)是一种模拟脑神经的人工神经网络模型的
代表性示例,并且不限于使用特定算法的人工神经网络模型。
66.此外,在本公开中,“参数”是在形成神经网络的每一个层的运算处理中使用的值,并且例如,可包括将输入值应用于特定运算表达式时使用的权重。这里,参数可以以矩阵形式来表示。参数是作为训练的结果而设置的值,并且在必要时可通过单独的训练数据被更新。
67.此外,在本公开中,“第一dnn”指示用于对图像进行人工智能(ai)缩小的dnn,“第二dnn”指示用于对图像进行ai放大的dnn。
68.此外,在本公开中,“dnn设置信息”包括与构成dnn的元素相关的信息。“dnn设置信息”包括以上作为与构成dnn的元素相关的信息而被描述的参数。可通过使用dnn设置信息来设置第一dnn或第二dnn。
69.此外,在本公开中,“原始图像”表示作为ai编码的对象的图像,并且“第一图像”表示作为在ai编码处理期间对原始图像执行ai缩小的结果而获得的图像。此外,“第二图像”表示在ai解码处理期间经由第一解码而获得的图像,并且“第三图像”表示在ai解码处理期间通过对第二图像进行ai放大而获得的图像。
70.此外,在本公开中,“ai缩小”表示基于ai降低图像的分辨率的处理,并且“第一编码”表示根据基于频率变换的图像压缩方法的编码处理。此外,“第一解码”表示根据基于频率变换的图像重建方法的解码处理,“ai放大”表示基于ai提高图像的分辨率的处理。
71.图1是根据实施例的用于描述ai编码处理和ai解码处理的示图。
72.如上所述,当图像的分辨率显著增加时,用于对图像进行编码和解码的信息的吞吐量增加,因此,需要一种用于提高图像的编码和解码效率的方法。
73.如在图1中所示出的,通过对具有高分辨率的原始图像105执行ai缩小110来获得第一图像115。然后,对具有相对低分辨率的第一图像115执行第一编码120和第一解码130,因此与仅对高分辨率的原始图像105执行第一编码和第一解码相比,比特率可显著降低。
74.具体地讲,在图1中,在ai编码处理期间,通过对原始图像105执行ai缩小110来获得第一图像115并且由编码设备等对第一图像115执行第一编码120。在ai解码处理期间,由解码设备等接收作为ai编码的结果而获得的包括ai数据和图像数据的ai编码数据,经由第一解码130获得第二图像135,并且通过对第二图像135执行ai放大140来获得第三图像145。
75.详细参照ai编码处理,当接收到原始图像105时,对原始图像105执行ai缩小110以获得特定分辨率或特定质量的第一图像115。这里,基于ai模型来执行ai缩小110,并且用于执行ai缩小110的ai模型需要与用于执行第二图像135的ai放大140的ai模型联合训练。这是因为,当用于ai缩小110的ai模型和用于ai放大140的ai被单独训练时,作为ai编码的对象的原始图像105与通过ai解码重建的第三图像145之间的差异会增加。
76.在本公开的实施例中,ai数据可被用于在ai编码处理和ai解码处理期间保持这样的联合关系。因此,通过ai编码处理获得的ai数据可包括指示放大目标的信息,并且在ai解码处理期间,根据包括在ai数据中的放大目标对第二图像135执行ai放大140。
77.用于ai缩小110的ai和用于ai放大140的ai可被实施为dnn。如稍后将参照图9描述的,因为通过在特定目标下共享损失信息来联合训练第一dnn和第二dnn,所以ai编码设备可将在第一dnn和第二dnn的联合训练期间使用的目标信息提供给ai解码设备,并且ai解码设备可基于提供的目标信息对第二图像135执行ai放大140至目标分辨率。
78.关于图1的第一编码120和第一解码130,可通过第一编码120减少通过对原始图像105执行ai缩小110而获得的第一图像115的信息量。第一编码120可包括通过对第一图像115进行预测来生成预测数据的处理、生成与第一图像115与预测数据之间的差相应的残差数据的处理、将空间域分量的残差数据变换为频域分量的处理、对变换为频域分量的残差数据进行量化的处理、以及对量化的残差数据进行熵编码的处理。这样的第一编码120可经由使用频率变换的图像压缩方法(诸如mpeg-2、h.264高级视频编码(avc)、mpeg-4、高效视频编码(hevc)、vc-1、vp8、vp9和aomedia video1(av1))中的一种来执行。
79.可通过对图像数据执行第一解码130来重建与第一图像115相应的第二图像135。第一解码130可包括通过对图像数据进行熵解码来生成量化的残差数据的处理、对量化的残差数据进行反量化的处理、将频域分量的残差数据变换为空间域分量的处理、生成预测数据的处理、以及通过使用预测数据和残差数据来重建第二图像135的处理。这样的第一解码130可经由与在第一编码120中使用的使用频率变换的图像压缩方法(诸如mpeg-2、h.264avc、mpeg-4、hevc、vc-1、vp8、vp9和av1)之一相应的图像重建方法来执行。
80.通过ai编码处理获得的ai编码数据可包括作为对第一图像115执行第一编码120的结果而获得的图像数据以及与原始图像105的ai缩小110相关的ai数据。可在第一解码130期间使用图像数据,并且可在ai放大140期间使用ai数据。
81.可以以比特流的形式发送图像数据。图像数据可包括基于第一图像115中的像素值而获得的数据,例如,作为第一图像115与第一图像115的预测数据之间的差的残差数据。此外,图像数据包括对第一图像115执行第一编码120期间使用的信息。例如,图像数据可包括第一编码120期间使用的预测模式信息、运动信息和与量化参数相关的信息。可根据mpeg-2、h.264avc、mpeg-4、hevc、vc-1、vp8、vp9和av1中的在第一编码120期间使用的图像压缩方法的规则(例如,根据语法)来生成图像数据。
82.在基于第二dnn的ai放大140中使用ai数据。如上所述,因为第一dnn和第二dnn被联合训练,所以ai数据包括使得能够通过第二dnn对第二图像135准确地执行ai放大140的信息。在ai解码处理期间,可基于ai数据对第二图像135执行ai放大140以具有目标分辨率和/或质量。
83.ai数据可与图像数据一起以比特流的形式被发送。另外,根据实施例,ai数据可以以帧或分组的形式与图像数据被分开发送。可通过相同的网络或通过不同的网络发送作为ai编码的结果而获得的ai数据和图像数据。
84.图2是根据实施例的ai解码设备200的框图。
85.参照图2,根据实施例的ai解码设备200可包括接收器210和ai解码器230。接收器210可包括通信器212、解析器214和输出器216。ai解码器230可包括第一解码器232和ai放大器234。
86.接收器210接收并解析作为ai编码的结果而获得的ai编码数据,并且将图像数据和ai数据输出到ai解码器230。
87.具体地讲,通信器212通过网络接收作为ai编码的结果而获得的ai编码数据。作为执行ai编码的结果而获得的ai编码数据包括图像数据和ai数据。可通过相同类型的网络或不同类型的网络接收图像数据和ai数据。
88.解析器214接收通过通信器212接收的ai编码数据,并对ai编码数据进行解析以将
图像数据和ai数据划分开。例如,解析器214可通过读取从通信器212获得的数据的头来对图像数据和ai数据进行区分。根据实施例,解析器214经由通过通信器212接收到的数据的头将图像数据和ai数据发送到输出器216,并且输出器216将图像数据和ai数据分别发送到第一解码器232和ai放大器234。此时,包括在ai编码数据中的图像数据可被验证为经由特定编解码器(例如,mpeg-2、h.264avc、mpeg-4、hevc、vc-1、vp8、vp9或av1)生成的图像数据。在这种情况下,可通过输出器216可将相应信息发送到第一解码器232,使得图像数据经由验证的编解码器被处理。
89.根据实施例,可从数据存储介质获得由解析器214解析的ai编码数据,其中,所述数据存储介质包括磁介质(诸如,硬盘、软盘或磁带)、光学记录介质(诸如,cd-rom或dvd)或者磁光介质(诸如,软光盘)。
90.第一解码器232基于图像数据重建与第一图像115相应的第二图像135。由第一解码器232获得的第二图像135被提供给ai放大器234。根据实施例,还可将图像数据中包括的第一解码相关信息(诸如预测模式信息、运动信息、量化参数信息等)提供给ai放大器234。
91.在接收到ai数据时,ai放大器234基于ai数据对解码的第二图像135执行ai放大。根据实施例,可通过进一步使用包括在图像数据中的第一解码相关信息(诸如预测模式信息、量化参数信息等)来执行ai放大。
92.根据实施例的接收器210和ai解码器230在被描述为单独的装置,但可通过一个处理器被实现。在这种情况下,可通过专用处理器或者通过软件和通用处理器(诸如应用处理器(ap)、中央处理器(cpu)或图形处理单元(gpu))的组合来实现接收器210和ai解码器230。可通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储器处理器来实现所述专用处理器。
93.此外,接收器210和ai解码器230可由多个处理器来配置。在这种情况下,可通过专用处理器的组合或者通过软件和通用处理器(诸如ap、cpu或gpu)的组合来实现接收器210和ai解码器230。类似地,可通过不同处理器实现ai放大器234和第一解码器232。
94.提供给ai放大器234的ai数据包括使得第二图像135能够经由ai放大被处理的信息。这里,放大目标应当相应于第一dnn的缩小目标。因此,ai数据包括用于验证第一dnn的缩小目标的信息。
95.ai数据中包括的信息的示例包括原始图像105的分辨率与第一图像115的分辨率之间的差信息以及与第一图像115相关的信息。
96.差信息可包括关于第一图像115与原始图像105相比的分辨率转换程度的信息(例如,分辨率转换率信息)。此外,因为通过重建的第二图像135的分辨率来验证第一图像115的分辨率并且因此分辨率转换程度被验证,所以所述差信息可仅被表示为原始图像105的分辨率信息。这里,分辨率信息可包括垂直屏幕尺寸/水平尺寸、或者比例(16:9、4:3等)和一个轴的尺寸。此外,当存在预先设置的分辨率信息时,可以以索引或标志的形式来表示分辨率信息。
97.与第一图像115相关的信息可包括关于作为对第一图像115执行第一编码的结果而获得的图像数据的比特率或在第一图像115的第一编码期间使用的编解码器类型中的至少一个的信息。
98.ai放大器234可基于包括在ai数据中的差信息或与第一图像115相关的信息中的
至少一个来确定第二图像135的放大目标。放大目标可指示例如将针对第二图像135将分辨率放大到什么程度。当放大目标被确定时,ai放大器234通过第二dnn对第二图像135执行ai放大,以获得与放大目标相应的第三图像145。
99.在描述由ai放大器234根据放大目标对第二图像135执行ai放大的方法之前,将参照图3和图4描述通过第二dnn的ai放大处理。
100.图3是示出根据实施例的用于对第二图像135执行ai放大的第二dnn 300的示图,并且图4是用于描述根据实施例的图3的第一卷积层310中的卷积运算的示图。
101.如在图3中所示出的,第二图像135被输入到第一卷积层310。这里,第一卷积层310中的标注3
×3×
4指示通过使用尺寸为3
×
3的四个滤波器核对一个输入图像执行卷积处理。由所述四个滤波器核生成四个特征图作为卷积处理的结果。每一个特征图指示第二图像135的固有特性。例如,每一个特征图可表示第二图像135的垂直方向特性、水平方向特性或边缘特性等。
102.将参照图4详细描述第一卷积层310中的卷积运算。
103.可通过在第一卷积层310中使用的尺寸为3
×
3的滤波器核430的参数与第二图像135中的相应像素值之间的乘法和加法来生成一个特征图450。因为在第一卷积层310中使用四个滤波器核,所以可使用四个滤波器核通过卷积运算来生成四个特征图。
104.参照图4,i1至i49指示第二图像135中的像素,并且滤波器核430中的f1至f9指示滤波器核430的参数。此外,特征图450中的m1至m9指示特征图450的样点。
105.在图4中,第二图像135包括49个像素,但是像素的数量仅是示例,并且当第二图像135具有4k的分辨率时,第二图像135可包括例如3840
×
2160个像素。
106.在卷积运算处理期间,将第二图像135的i1、i2、i3、i8、i9、i10、i15、i16和i17的像素值与滤波器核430的f1至f9分别相乘,并且可将相乘的结果值的组合(例如,相加)的值赋为特征图450的m1的值。当卷积运算的步长为2时,将第二图像135的i3、i4、i5、i10、i11、i12、i17、i18和i19的像素值分别与滤波器核430的f1至f9相乘,并且相乘的结果值的组合的值可被赋为特征图450的m2的值。类似地,可通过执行上述运算处理获得特征图450的m3至m9。
107.在滤波器核430沿着步长移动到第二图像135的最后像素的同时,在第二图像135中的像素值与滤波器核430的参数之间执行卷积运算,并且因此可生成具有特定尺寸的特征图450。
108.根据本公开,可通过第一dnn和第二dnn的联合训练来优化第二dnn的参数的值(例如,在第二dnn的卷积层中使用的滤波器核的参数(例如,滤波器核430的f1至f9)的值)。如上所述,ai放大器234可基于ai数据确定与第一dnn的缩小目标相应的放大目标,并且将与所确定的放大目标相应的参数确定为在第二dnn的卷积层中使用的滤波器核的参数。
109.包括在第一dnn和第二dnn中的卷积层可根据参照图4描述的卷积运算处理来执行处理,但是参照图4描述的卷积运算处理仅是示例并且不限于此。
110.返回参照图3,从第一卷积层310输出的特征图可被输入到第一激活层320。
111.第一激活层320可将非线性特征赋予每一个特征图。第一激活层320可包括s型(sigmoid)函数、双曲正切(tanh)函数、修正线性单元(relu)函数等,但不限于此。
112.赋予非线性特征的第一激活层320指示改变作为第一卷积层310的输出的特征图
的至少一个样点值。这里,通过应用非线性特征来执行所述改变。
113.第一激活层320确定是否将从第一卷积层310输出的特征图的样点值发送到第二卷积层330。例如,特征图的一些样点值由第一激活层320激活并被发送到第二卷积层330,并且一些样点值由第一激活层320去激活并不被发送到第二卷积层330。由特征图表示的第二图像135的固有特性通过第一激活层320被强调。
114.从第一激活层320输出的特征图325被输入到第二卷积层330。图3中所示的特征图325中的一个特征图是在第一激活层320中对参照图4描述的特征图450进行处理的结果。
115.第二卷积层330中的标注3
×3×
4指示通过使用尺寸为3
×
3的四个滤波器核对特征图325执行卷积处理。第二卷积层330的输出被输入到第二激活层340。第二激活层340可将非线性特征赋予输入数据。
116.从第二激活层340输出的特征图345被输入到第三卷积层350。图3中所示的第三卷积层350中的标注3
×3×
1指示通过使用尺寸为3
×
3的一个滤波器核执行卷积处理以生成一个输出图像。第三卷积层350是用于输出最终图像的层并且通过使用一个滤波器核来生成一个输出。根据本公开的实施例,第三卷积层350可输出第三图像145作为卷积运算的结果。
117.如稍后将描述的,可存在指示第二dnn 300的第一卷积层310、第二卷积层330和第三卷积层350的滤波器核的数量、第二dnn 300的第一卷积层310、第二卷积层330和第三卷积层350的滤波器核的参数等的多条dnn设置信息,并且所述多条dnn设置信息应当与第一dnn的多条dnn设置信息相关联。可经由第一dnn和第二dnn的联合训练来实现第二dnn的多条dnn设置信息与第一dnn的多条dnn设置信息之间的关联。
118.在图3中,第二dnn 300包括三个卷积层(第一卷积层310、第二卷积层330和第三卷积层350)以及两个激活层(第一激活层320和第二激活层340),但这仅是示例,并且卷积层的数量和激活层的数量可根据实施例而变化。此外,根据实施例,第二dnn 300可被实现为递归神经网络(rnn)。在这种情况下,根据本公开的实施例的第二dnn 300的卷积神经网络(cnn)结构被改变为rnn结构。
119.根据实施例,ai放大器234可包括用于上述卷积运算和激活层的运算的至少一个算术逻辑单元(alu)。alu可被实现为处理器。对于卷积运算,alu可包括乘法器和加法器,其中,所述乘法器执行第二图像135或从前一层输出的特征图的样点值与滤波器核的样点值之间的乘法,所述加法器将乘法的结果值相加。此外,对于激活层的操作,alu可包括乘法器和比较器,其中,所述乘法器将输入样点值乘以在预定的sigmoid函数、tanh函数或relu函数中使用的权重,所述比较器将乘法结果与特定值进行比较以确定是否将输入样点值发送到下一层。
120.在下文中,将描述由ai放大器234执行的根据放大目标对第二图像135执行ai放大的方法。
121.根据实施例,ai放大器234可存储可在第二dnn中配置的多条dnn设置信息。
122.这里,dnn设置信息可包括关于第二dnn中包括的卷积层的数量、针对每一个卷积层的滤波器核的数量或每一个滤波器核的一个或更多个参数中的至少一个的信息。多条dnn设置信息可分别相应于各种放大目标,并且第二dnn可基于与特定放大目标相应的dnn设置信息进行操作。第二dnn可基于dnn设置信息具有不同的结构。例如,第二dnn可基于任
意一条dnn设置信息包括三个卷积层,并且可基于另一条dnn设置信息包括四个卷积层。
123.根据实施例,dnn设置信息可仅包括第二dnn中使用的滤波器核的参数。在这种情况下,第二dnn的结构不改变,但仅内部滤波器核的参数可基于dnn设置信息而改变。
124.ai放大器234可获得多条dnn设置信息中的用于对第二图像135执行ai放大的dnn设置信息。所述多条dnn设置信息中的每一条dnn设置信息可以是用于获得预定分辨率和/或预定质量的第三图像145的信息,并且与第一dnn被联合训练。
125.例如,所述多条dnn设置信息中的一条dnn设置信息可包括用于获得分辨率为第二图像135的分辨率的两倍的第三图像145(例如,第三图像145可具有第二图像135的2k(2048
×
1080)分辨率的两倍的4k(4096
×
2160)分辨率)的信息,并且另一条dnn设置信息可包括用于获得分辨率为第二图像135的分辨率的四倍高的第三图像145(例如,为第二图像135的2k(2048
×
1080)的四倍高的8k(8192
×
4320)分辨率的第三图像145)的信息。
126.所述多条dnn设置信息中的每一条与图7的ai编码设备600的第一dnn的dnn设置信息被联合获得,并且ai放大器234根据与第一dnn的dnn设置信息的缩小比例相应的放大比例来获得所述多条dnn设置信息中的一条dnn设置信息。就此而言,ai放大器234可验证第一dnn的信息。为了使ai放大器234验证第一dnn的信息,根据实施例的ai解码设备200从ai编码设备600接收包括第一dnn的信息的ai数据。
127.换句话说,ai放大器234可通过使用从ai编码设备600接收到的信息来验证作为用于获得第一图像115的第一dnn的dnn设置信息的目标所针对的信息,并获得与第一dnn的dnn设置信息联合训练的第二dnn的dnn设置信息。
128.当从多条dnn设置信息中获得用于对第二图像135执行ai放大的dnn设置信息时,可基于根据所获得的dnn设置信息进行操作的第二dnn来对输入数据进行处理。
129.例如,当获得了任意一条dnn设置信息时,图3的第二dnn 300的第一卷积层310、第二卷积层330和第三卷积层350中的每一个中包括的滤波器核的数量以及滤波器核的参数被设置为包括在所获得的dnn设置信息中的值。
130.具体地讲,在图4的第二dnn的任意一个卷积层中使用的3
×
3的滤波器核的参数被设置为{1,1,1,1,1,1,1,1,1},并且当dnn设置信息随后被改变时,所述参数被作为改变后的dnn设置信息中包括的参数的{2,2,2,2,2,2,2,2,2}替换。
131.ai放大器234可基于ai数据中包括的信息从所述多条dnn设置信息中获得用于ai放大的dnn设置信息,并且现在将描述用于获得dnn设置信息的ai数据。
132.根据实施例,ai放大器234可基于ai数据中包括的差信息从所述多条dnn设置信息中获得用于ai放大的dnn设置信息。例如,当基于所述差信息验证了原始图像105的分辨率(例如,4k(4096
×
2160)分辨率)是第一图像115的分辨率(例如,2k(2048
×
1080)分辨率)的两倍高时,ai放大器234可获得用于将第二图像135的分辨率提高两倍的dnn设置信息。
133.根据另一实施例,ai放大器234可基于ai数据中包括的与第一图像115相关的信息从多条dnn设置信息中获得用于对第二图像135进行ai放大的dnn设置信息。ai放大器234可预先确定图像相关信息与dnn设置信息之间的映射关系,并且获得映射到与第一图像115相关的信息的dnn设置信息。
134.图5是示出根据实施例的图像相关信息与dnn设置信息之间的映射关系的表。
135.根据图5,ai编码和ai解码处理不仅仅考虑分辨率的改变,还考虑用于执行ai编码
和解码处理的其他因素。如在图5中所示出的,可单独或共同考虑分辨率(诸如标清(sd)、高清(hd)或全hd)、比特率(诸如10mbps、15mbps或20mbps)以及编解码器信息(诸如av1、h.264或hevc)来选择dnn设置信息。出于这样的分辨率、比特流和编解码器信息的考虑,考虑到每一个元素的训练应当在ai训练处理期间与编码和解码处理联合执行(参见图9)。
136.因此,当基于包括如在图5中所示出的编解码器类型、图像的分辨率等的图像相关信息提供了多条dnn设置信息时,可基于在ai解码处理期间接收到的与第一图像115相关的信息来获得用于对第二图像135进行ai放大的dnn设置信息。
137.换句话说,ai放大器234能够通过对图5的表的左侧的图像相关信息与表的右侧的dnn设置信息进行匹配来根据图像相关信息使用dnn设置信息。
138.如在图5中所示出的,当从与第一图像115相关的信息验证第一图像115的分辨率是sd,作为对第一图像115执行第一编码的结果而获得的图像数据的比特率是10mbps,并且经由av1编解码器对第一图像115执行第一编码时,ai放大器234可使用所述多条dnn设置信息中的a dnn设置信息。
139.此外,当从与第一图像115相关的信息验证第一图像115的分辨率是hd,作为执行第一编码的结果而获得的图像数据的比特率是15mbps,并且经由h.264编解码器执行第一编码时,ai放大器234可使用所述多条dnn设置信息中的b dnn设置信息。
140.此外,当从与第一图像115相关的信息验证第一图像115的分辨率是全hd,作为执行第一编码的结果而获得的图像数据的比特率是20mbps,并且经由hevc编解码器执行第一编码时,ai放大器234可使用所述多条dnn设置信息中的c dnn设置信息。当验证第一图像115的分辨率是全hd,作为执行第一编码的结果而获得的图像数据的比特率是15mbps,并且经由hevc编解码器执行第一编码时,ai放大器234可使用所述多条dnn设置信息中的d dnn设置信息。基于作为对第一图像115执行第一编码的结果而获得的图像数据的比特率是20mbps还是15mbps来选择c dnn设置信息和d dnn设置信息中的一个。在经由相同编解码器对相同分辨率的第一图像115执行第一编码时获得的图像数据的不同比特率指示重建图像的不同质量。因此,可基于特定图像质量联合训练第一dnn和第二dnn,并且因此,ai放大器234可根据指示第二图像135的质量的图像数据的比特率来获得dnn设置信息。
141.根据另一实施例,ai放大器234可考虑到从第一解码器232提供的信息(预测模式信息、运动信息、量化参数信息等)和ai数据中包括的与第一图像115相关的信息两者来从多条dnn设置信息中获得用于对第二图像135执行ai放大的dnn设置信息。例如,ai放大器234可从第一解码器232接收在第一图像115的第一编码处理期间使用的量化参数信息,从ai数据验证作为第一图像115的编码结果所获得的图像数据的比特率,并且获得与量化参数信息和比特率相应的dnn设置信息。即使当比特率相同时,重建图像的质量也可根据图像的复杂度而变化。比特率是表示对其执行第一编码的整个第一图像115的值,并且即使在第一图像115内,每一个帧的质量也可变化。因此,与仅使用ai数据时相比,当考虑来自第一解码器232的针对每一个帧可获得的预测模式信息、运动信息和/或量化参数时,可获得更适合于第二图像135的dnn设置信息。
142.此外,根据实施例,ai数据可包括相互约定的dnn设置信息的标识符。dnn设置信息的标识符是用于将在第一dnn与第二dnn之间联合训练的一对dnn设置信息区分开的信息,使得基于与第一dnn的缩小目标相应的放大目标对第二图像135执行ai放大。ai放大器234
可在获得ai数据中包括的dnn设置信息的标识符之后,通过使用与dnn设置信息的标识符相应的dnn设置信息对第二图像135执行ai放大。例如,可预先指定指示在第一dnn中可配置或可设置的所述多个dnn设置信息中的每一个dnn设置信息的标识符和指示在第二dnn中可配置或可设置的多个dnn设置信息中的每一个dnn设置信息的标识符。在这种情况下,可针对在第一dnn和第二dnn中的每一个中可配置或可设置的一对dnn设置信息指定相同的标识符。ai数据可包括用于原始图像105的ai缩小的第一dnn中设置的dnn设置信息的标识符。接收ai数据的ai放大器234可通过使用所述多个dnn设置信息中的由ai数据中包括的标识符指示的dnn设置信息来对第二图像135执行ai放大。
143.此外,根据实施例,ai数据可包括dnn设置信息。ai放大器234可在获得ai数据中包括的dnn设置信息之后通过使用dnn设置信息对第二图像135执行ai放大。
144.根据实施例,当构成dnn设置信息的多条信息(例如,卷积层的数量、针对每一个卷积层的滤波器核的数量、每一个滤波器核的一个或更多个参数等)以查找表的形式被存储时,ai放大器234可通过基于ai数据中包括的信息对从查找表中的值选择的一些值进行组合来获得dnn设置信息,并且通过使用获得的dnn设置信息对第二图像135执行ai放大。
145.根据实施例,当与放大目标相应的dnn的结构被确定时,ai放大器234可获得与所确定的dnn的结构相应的dnn设置信息,例如,滤波器核的参数。
146.ai放大器234通过包括与第一dnn相关的信息的ai数据获得第二dnn的dnn设置信息,并且通过基于所获得的dnn设置信息设置的第二dnn对第二图像135执行ai放大。像这样,与直接分析第二图像135的特征以进行放大时相比,可降低存储器使用和吞吐量。
147.根据实施例,当第二图像135包括多个帧时,ai放大器234可针对特定数量个帧独立地获得dnn设置信息,或者可获得针对全部帧的共同的dnn设置信息。
148.图6是示出包括多个帧的第二图像135的示图。
149.如在图6中所示出的,第二图像135可包括帧t0至帧tn。
150.根据实施例,ai放大器234可通过ai数据获得第二dnn的dnn设置信息,并且基于所获得的dnn设置信息对帧t0至帧tn执行ai放大。换句话说,可基于共同的dnn设置信息经由ai放大来处理帧t0至帧tn。
151.根据另一实施例,ai放大器234可通过使用从ai数据获得的“a”dnn设置信息对帧t0至帧tn中的一些帧(例如,帧t0至帧ta)执行ai放大,并且通过使用从ai数据获得的“b”dnn设置信息对帧ta 1至帧tb执行ai放大。此外,ai放大器234可通过使用从ai数据获得的“c”dnn设置信息来对帧tb 1至帧tn执行ai放大。换句话说,ai放大器234可针对包括多个帧中的特定数量个帧的每一组独立地获得dnn设置信息,并且通过使用独立地获得的dnn设置信息对每一组中包括的帧执行ai放大。
152.根据另一实施例,ai放大器234可针对形成第二图像135的每一个帧独立地获得dnn设置信息。换句话说,当第二图像135包括三个帧时,ai放大器234可通过使用关于第一帧获得的dnn设置信息对第一帧执行ai放大,通过使用关于第二帧获得的dnn设置信息对第二帧执行ai放大,并且通过使用关于第三帧获得的dnn设置信息对第三帧执行ai放大。基于从第一解码器232提供的信息(预测模式信息、运动信息、量化参数信息等)和包括在上述ai数据中的与第一图像115相关的信息,可针对包括在第二图像135中的每一个帧独立地获得dnn设置信息。这是因为可针对包括在第二图像135中的每一个帧独立地确定模式信息、量
化参数信息等。
153.根据另一实施例,ai数据可包括关于哪个帧可应用dnn设置信息的信息,其中,dnn设置信息是基于ai数据获得的。例如,当ai数据包括指示dnn设置信息直到帧ta可应用的信息时,ai放大器234通过使用基于ai数据获得的dnn设置信息对帧t0至帧ta执行ai放大。此外,当另一条ai数据包括指示dnn设置信息直到帧tn可应用的信息时,ai放大器234通过使用基于所述另一条ai数据获得的dnn设置信息对帧ta 1至帧tn执行ai放大。
154.在下文中,将参照图7描述用于对原始图像105执行ai编码的ai编码设备600。
155.图7是根据实施例的ai编码设备600的框图。
156.参照图7,ai编码设备600可包括ai编码器610和发送器630。ai编码器610可包括ai缩小器66和第一编码器614。发送器630可包括数据处理器632和通信器634。
157.在图7中,ai编码器610和发送器630被示出为独立的装置,但是ai编码器610和发送器630可通过一个处理器来实现。在这种情况下,ai编码器610和发送器630可通过专用处理器或者通过软件和通用处理器(诸如ap、cpu或图形处理器gpu)的组合来实现。可通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储器处理器来实现所述专用处理器。
158.此外,ai编码器610和发送器630可由多个处理器来构成。在这种情况下,ai编码器610和发送器630可通过专用处理器的组合或者通过软件和多个通用处理器(诸如ap、cpu或gpu)的组合来实现。ai缩小器612和第一编码器614可通过不同处理器来实现。
159.ai编码器610对原始图像105执行ai缩小并对第一图像115执行第一编码ai编码器610对原始图像105执行ai缩小并对第一图像115执行第一编码,并且将ai数据和图像数据发送到发送器630。发送器630将ai数据和图像数据发送到ai解码设备200。发送器630可包括通信接口,诸如,包括无线电和/或天线的无线通信接口、或者有线通信接口(诸如,hdmi、以太网(ethernet)等)。
160.图像数据包括作为对第一图像115执行第一编码的结果而获得的数据。图像数据可包括基于第一图像115中的像素值而获得的数据,例如,作为第一图像115与第一图像115的预测数据之间的差的残差数据。此外,图像数据包括第一图像115的第一编码处理期间使用的信息。例如,图像数据可包括用于对第一图像115执行第一编码的预测模式信息、运动信息、量化参数信息等。
161.ai数据包括使得能够对第二图像135执行ai放大至与第一dnn的缩小目标相应的放大目标的信息。根据实施例,ai数据可包括原始图像105与第一图像115之间的差信息。此外,ai数据可包括与第一图像115相关的信息。与第一图像115相关的信息可包括关于第一图像115的分辨率、作为对第一图像115执行第一编码的结果而获得的图像数据的比特率、以及在第一图像115的第一编码期间使用的编解码器类型中的至少一个的信息。
162.根据实施例,ai数据可包括相互约定或统一的dnn设置信息的标识符,使得对第二图像135执行ai放大至与第一dnn的缩小目标相应的放大目标。
163.此外,根据实施例,ai数据可包括在第二dnn中可配置的dnn设置信息。
164.ai缩小器612可获得通过经由第一dnn对原始图像105执行ai缩小而获得的第一图像115。ai缩小器612可基于预定标准确定原始图像105的缩小目标。
165.为了获得基于缩小目标的第一图像115,ai缩小器612可存储在第一dnn中可配置
的多条dnn设置信息。ai缩小器612从所述多条dnn设置信息中获得与缩小目标相应的dnn设置信息,并且通过在所获得的dnn设置信息中设置的第一dnn对原始图像105执行ai缩小。
166.可训练所述多条dnn设置信息中的每一条dnn设置信息以获得预定分辨率和/或预定质量的第一图像115。例如,所述多条dnn设置信息中的任意一条dnn设置信息可包括用于获得分辨率为原始图像105的分辨率的一半的第一图像115(例如,第一图像115可被缩小至作为原始图像105的4k(4096
×
2160)分辨率的一半的2k(2048
×
1080)分辨率)的信息,并且另一条dnn设置信息可包括用于获得分辨率为原始图像105的分辨率的四分之一的第一图像115(例如,第一图像115可被缩小至作为原始图像105的8k(8192
×
4320)分辨率的四分之一的2k(2048
×
1080)分辨率)的信息。
167.根据实施例,当构成dnn设置信息的多条信息(例如,卷积层的数量、针对每一个卷积层的滤波器核的数量、每一个滤波器核的一个或更多个参数等)以查找表的形式被存储时,ai缩小器612可通过基于缩小目标对从查找表中的值选择的一些值进行组合来获得dnn设置信息,并且通过使用所获得的dnn设置信息对原始图像105执行ai缩小。
168.根据实施例,ai缩小器612可确定与缩小目标相应的dnn的结构,并且获得与所确定的dnn的结构相应的dnn设置信息,例如,获得滤波器核的参数。
169.随着第一dnn和第二dnn被联合训练,用于对原始图像105执行ai缩小的多条dnn设置信息可具有优化值。这里,每条dnn设置信息包括第一dnn中包括的卷积层的数量、针对每一个卷积层的滤波器核的数量或每一个滤波器核的一个或更多个参数中的至少一个。
170.ai缩小器612可利用用于对原始图像105执行ai缩小的dnn设置信息设置第一dnn,以通过第一dnn获得特定分辨率和/或特定质量的第一图像115。当从多条dnn设置信息获得用于对原始图像105执行ai缩小的dnn设置信息时,第一dnn中的每一个层可基于dnn设置信息中包括的信息来对输入数据进行处理。
171.在下文中,将描述由ai缩小器612执行的确定缩小目标的方法。缩小目标可指示例如分辨率从原始图像105降低多少以获得第一图像115。
172.根据实施例,ai缩小器612可基于原始图像105的压缩比(例如,原始图像105与第一图像115之间的分辨率差、目标比特率等)、压缩质量(例如,比特率的类型)、压缩历史信息或类型中的至少一个来确定缩小目标。
173.例如,ai缩小器612可基于预设或从用户输入的压缩比、压缩质量等,确定缩小目标。
174.作为另一示例,ai缩小器612可通过使用存储在ai编码设备600中的压缩历史信息来确定缩小目标。例如,根据ai编码设备600的压缩历史信息,可确定用户偏好的编码质量、压缩比等,并且可根据基于压缩历史信息确定的编码质量来确定缩小目标。例如,可根据压缩历史信息基于最频繁使用的编码质量来确定第一图像115的分辨率、质量等。
175.作为另一示例,ai缩小器612可根据压缩历史信息基于比特定阈值更频繁使用的编码质量(例如,比特定阈值更频繁使用的编码质量的平均质量)来确定缩小目标。
176.作为另一示例,ai缩小器612可基于原始图像105的分辨率、类型(例如,文件格式)等来确定缩小目标。
177.根据实施例,当原始图像105包括多个帧时,ai缩小器612可针对所述多个帧之中的特定数量个帧独立地确定缩小目标,或者可确定针对所述多个帧中的全部帧的缩小目
标。
178.根据实施例,ai缩小器612可将包括在原始图像105中的帧划分为特定数量个组,并且针对每一个组独立地确定缩小目标。可针对每一个组确定相同或不同的缩小目标。根据每一个组,组中包括的帧的数量可相同或不同。
179.根据另一实施例,ai缩小器612可针对包括在原始图像105中的每一个帧独立地确定缩小目标。可针对每一个帧确定相同或不同的缩小目标。
180.在下文中,将描述ai缩小所基于的第一dnn 700的结构的示例。
181.图8是示出根据实施例的用于对原始图像105执行ai缩小的第一dnn 700的示图。
182.如在图8中所示出的,原始图像105被输入到第一卷积层710。第一卷积层710通过使用尺寸为5
×
5的32个滤波器核对原始图像105执行卷积处理。这里,作为卷积处理的结果而生成的32个特征图被输入到第一激活层720。第一激活层720可将非线性特征赋予所述32个特征图。
183.第一激活层720确定是否将从第一卷积层710输出的特征图的样点值发送到第二卷积层730。例如,所述特征图的一些样点值被第一激活层720激活并且被发送到第二卷积层730,并且一些样点值被第一激活层720去激活并且不被发送到第二卷积层730。由从第一卷积层710输出的特征图表示的信息被第一激活层720强调。
184.第一激活层720的输出725被输入到第二卷积层730。第二卷积层730通过使用尺寸为5
×
5的32个滤波器核对输入数据执行卷积处理。这里,作为卷积处理的结果而输出的32个特征图被输入到第二激活层740,并且第二激活层740可将非线性特征赋予所述32个特征图。
185.第二激活层740的输出745被输入到第三卷积层750。第三卷积层750通过使用尺寸为5
×
5的一个滤波器核对输入数据执行卷积处理。作为卷积处理的结果,可从第三卷积层750输出一个图像。第三卷积层750通过将所述一个滤波器核用作用于输出最终图像的层来生成一个输出。根据本公开的实施例,第三卷积层750可输出第一图像115作为卷积运算的结果。尽管上面已经描述了针对卷积层和激活层的实施例,但卷积层和激活层不限于上述特定实施例,并且可被各种配置。
186.可存在指示第一dnn 700的第一卷积层710、第二卷积层730和第三卷积层750的滤波器核的数量、第一dnn 700的第一卷积层710、第二卷积层730和第三卷积层750的每一个滤波器核的一个或更多个参数等的多条dnn设置信息,并且所述多条dnn设置信息可与第二dnn的多条dnn设置信息相关联。可经由第一dnn和第二dnn的联合训练来实现第一dnn的所述多条dnn设置信息与第二dnn的所述多条dnn设置信息之间的关联。
187.在图8中,第一dnn 700包括三个卷积层(分别为第一卷积层710、第二卷积层730和第三卷积层750)以及两个激活层(分别为第一激活层720和第二激活层740),但这仅是示例,并且卷积层和激活层的数量可根据各种实施例而变化。此外,根据实施例,第一dnn 700可被实现为rnn。在这种情况下,第一dnn 700的cnn结构可被改变为rnn结构。
188.根据实施例,ai缩小器612可包括用于上述卷积运算和激活层的运算的至少一个alu。alu可被实现为处理器。对于卷积运算,alu可包括乘法器和加法器,其中,所述乘法器执行原始图像105或从前一层输出的特征图的样点值与滤波器核的样点值之间的乘法,所述加法器将乘法的结果值相加。此外,对于激活层的运算,alu可包括乘法器和比较器,其
中,所述乘法器将输入样点值乘以在预定的sigmoid函数、tanh函数或relu函数中使用的权重,所述比较器将乘法结果与特定值进行比较以确定是否将输入样点值发送到下一层。
189.返回参照图7,在从ai缩小器612接收到第一图像115时,第一编码器614可通过对第一图像115执行第一编码来减少第一图像115的信息量。可获得与第一图像115相应的图像数据,作为由第一编码器614执行第一编码的结果。
190.数据处理器632对将以特定形式发送的ai数据或图像数据中的至少一个进行处理。例如,当将以比特流的形式发送ai数据和图像数据时,数据处理器632可将ai数据处理为以比特流的形式被表示,并且通过通信器634以一个比特流的形式发送图像数据和ai数据。作为另一示例,数据处理器632可将ai数据处理为以比特流的形式被表示,并且通过通信器634发送与ai数据相应的比特流和与图像数据相应的比特流中的每一个比特流。作为另一示例,数据处理器632可将ai数据处理为以帧或分组的形式被表示,并且通过通信器634以比特流的形式发送图像数据并以帧或分组的形式发送ai数据。
191.通信器634通过网络发送作为执行ai编码的结果而获得的ai编码数据。作为执行ai编码的结果而获得的ai编码数据包括图像数据和ai数据。图像数据和ai数据可通过相同类型的网络或不同类型的网络被发送。
192.根据实施例,作为数据处理器632的处理结果而获得的ai编码数据可被存储在数据存储介质中,其中,所述数据存储介质包括磁介质(诸如,硬盘、软盘或磁带)、光学记录介质(诸如,cd-rom或dvd)、或者磁光介质(诸如,软光盘)。
193.在下文中,将参照图9描述联合训练第一dnn 700和第二dnn 300的方法。
194.图9是用于描述训练第一dnn 700和第二dnn 300的方法的示图。
195.在实施例中,经由ai解码处理将通过ai编码处理被执行ai编码的原始图像105重建为第三图像145,并且为了保持原始图像105与作为ai解码的结果而获得的第三图像145之间的相似性或一致性,需要ai编码处理与ai解码处理之间的通信或配合。换句话说,需要在ai解码处理期间重建在ai编码处理中损失的信息,并且就此而言,需要对第一dnn 700和第二dnn 300进行联合训练以补偿信息损失。
196.为了进行准确的ai解码,需要减少与将图9中所示的第三训练图像804和原始训练图像801之间的差异相应的质量损失信息830。因此,质量损失信息830被用于训练第一dnn 700和第二dnn 300两者。
197.首先,将描述图9中所示的训练处理。
198.在图9中,原始训练图像801是将被执行ai缩小的图像,并且第一训练图像802是通过对原始训练图像801执行ai缩小而获得的图像。此外,第三训练图像804是通过对第一训练图像802执行ai放大而获得的图像。
199.原始训练图像801可以是静止图像或包括多个帧的运动图像。根据实施例,原始训练图像801可包括从静止图像或包括多个帧的运动图像提取的亮度图像。此外,根据实施例,原始训练图像801可包括从静止图像或包括多个帧的运动图像提取的分块图像。当原始训练图像801包括多个帧时,第一训练图像802、第二训练图像和第三训练图像804可各自包括多个帧。当原始训练图像801的多个帧被依次输入到第一dnn 700时,可通过第一dnn700和第二dnn 300依次获得第一训练图像802的多个帧、第二训练图像的多个帧和第三训练图像804的多个帧。
200.对于第一dnn 700和第二dnn 300的联合训练,原始训练图像801被输入到第一dnn 700。输入到第一dnn 700的原始训练图像801经由ai缩小被输出为第一训练图像802,并且第一训练图像802被输入到第二dnn 300。输出第三训练图像804作为对第一训练图像802执行ai放大的结果。
201.参照图9,第一训练图像802被输入到第二dnn 850,并且根据实施例,对第一训练图像802执行第一编码和第一解码时获得的第二训练图像可被输入到第二dnn 300。为了将第二训练图像输入到第二dnn 300,可使用mpeg-2、h.264、mpeg-4、hevc、vc-1、vp8、vp9和av1中的任意一种编解码器。具体地讲,mpeg-2、h.264、mpeg-4、hevc、vc-1、vp8、vp9和av1中的任意一种编解码器可被用于对第一训练图像802执行第一编码并对与第一训练图像802相应的图像数据执行第一解码。
202.参照图9,与通过第一dnn 700输出的第一训练图像802分开地,获得通过对原始训练图像801执行传统缩小而获得的缩减的训练图像803。这里,传统缩小可包括双线性缩放、双三次缩放、lanczos缩放或阶梯缩放中的至少一个。
203.为了防止第一图像115的结构特征极大地偏离原始图像105的结构特征,获得缩减的训练图像803以保留原始训练图像801的结构特征。
204.在执行训练之前,可根据预定的dnn设置信息配置第一dnn 700和第二dnn 300。当执行训练时,可确定结构损失信息810、复杂度损失信息820和质量损失信息830。
205.可基于将缩减的训练图像803和第一训练图像802进行比较的结果来确定结构损失信息810。例如,结构损失信息810可相应于缩减的训练图像803的结构信息与第一训练图像802的结构信息之间的差。结构信息可包括可从图像提取的各种特征,诸如图像的亮度、对比度、直方图等。结构损失信息810指示原始训练图像801的多少结构信息被保持在第一训练图像802中。当结构损失信息810小时,第一训练图像802的结构信息与原始训练图像801的结构信息相似。
206.可基于第一训练图像802的空间复杂度来确定复杂度损失信息820。例如,第一训练图像802的总方差值可被用作空间复杂度。复杂度损失信息820与通过对第一训练图像802执行第一编码而获得的图像数据的比特率相关。定义当复杂度损失信息820小时,图像数据的比特率低。
207.可基于将原始训练图像801与第三训练图像804进行比较的结果来确定质量损失信息830。质量损失信息830可包括关于原始训练图像801与第三训练图像804之间的差的l1范数值、l2范数值、结构相似度(ssim)值、峰值信噪比-人类视觉系统(psnr-hvs)值、多尺度ssim(ms-ssim)值、方差膨胀因子(vif)值或视频多方法评估融合(vmaf)值中的至少一个。质量损失信息830指示第三训练图像804与原始训练图像801有多相似。当质量损失信息830小时,第三训练图像804与原始训练图像801更相似。
208.参照图9,结构损失信息810、复杂度损失信息820和质量损失信息830被用于训练第一dnn 700,并且质量损失信息830被用于训练第二dnn 300。换句话说,质量损失信息830被用于训练第一dnn 700和第二dnn 300两者。
209.第一dnn 700可更新参数,使得基于第一至质量损失信息810至830确定的最终损失信息被减少或最小化。此外,第二dnn 300可更新参数,使得质量损失信息830被减少或最小化。
210.可根据下面的等式1确定用于训练第一dnn 700和第二dnn 300的最终损失信息。
211.[等式1]
[0212]
lossds=a
×
结构损失信息 b
×
复杂度损失信息 c
×
质量损失信息
[0213]
lossus=d
×
质量损失信息
[0214]
在等式1中,lossds指示将被减小或最小化以训练第一dnn 700的最终损失信息,并且lossus指示将被减小或最小化以训练第二dnn 300的最终损失信息。此外,系数a、b、c和d可以是预定的权重。
[0215]
换句话说,第一dnn 700更新参数使得等式1的lossds减小,并且第二dnn 300更新参数使得lossus减小。当根据在训练期间推导出的lossds来更新第一dnn 700的参数时,基于更新的参数获得的第一训练图像802变得与基于未被更新的参数获得的先前的第一训练图像802不同,并且因此,第三训练图像804也变得与先前的第三训练图像804不同。当第三训练图像804变得与先前的第三训练图像804不同时,还重新确定质量损失信息830,并且第二dnn 300相应地更新参数。当重新确定质量损失信息830时,还重新确定lossds,并且第一dnn 700根据重新确定的lossds来更新参数。换句话说,第一dnn 700的参数的更新导致第二dnn 300的参数的更新,并且第二dnn 300的参数的更新导致第一dnn 700的参数的更新。因此,因为通过共享质量损失信息830来联合训练第一dnn 700和第二dnn 300,所以可联合优化第一dnn 700的参数和第二dnn 300的参数。
[0216]
参照等式1,可假设根据质量损失信息830来确定lossus,但这仅是示例,并且可基于结构损失信息810和复杂度损失信息820中的至少一个以及质量损失信息830来确定lossus。
[0217]
在上文中,已经描述了ai解码设备200的ai放大器234和ai编码设备600的ai缩小器612存储多条dnn设置信息,并且现在将描述训练存储在ai放大器234和ai缩小器612中的多条dnn设置信息中的每条dnn设置信息的方法。
[0218]
如参照等式1所述,第一dnn 700考虑到第一训练图像802的结构信息与原始训练图像801的结构信息之间的相似性(结构损失信息810)、作为对第一训练图像802执行第一编码的结果而获得的图像数据的比特率(复杂度损失信息820)、以及第三训练图像804与原始训练图像801之间的差(质量损失信息830)来更新参数。
[0219]
具体地讲,可更新第一dnn 700的参数,从而获得与原始训练图像801具有相似的结构信息的第一训练图像802并且当对第一训练图像802执行第一编码时获得具有小比特率的图像数据,并且此时,对第一训练图像802执行ai放大的第二dnn 300获得与原始训练图像801相似的第三训练图像804。
[0220]
可通过调整等式1的权重a、b和c来优化第一dnn 700的参数。例如,当权重b被设置为高的值时,可将第一dnn 700的参数更新至使第三训练图像804的低比特率优先于高质量来更新第一dnn 700的参数。此外,当权重c被设置为高的值时,可将第一dnn 700的参数更新至使第三训练图像804的高质量优先于高比特率或者保持原始训练图像801的结构信息。
[0221]
此外,可根据用于对第一训练图像802执行第一编码的编解码器的类型来优化第一dnn 700的参数。这是因为将被输入到第二dnn 300的第二训练图像可根据编解码器的类型而变化。
[0222]
换句话说,可基于权重a、b和c以及用于对第一训练图像802执行第一编码的编解
码器的类型来联合更新第一dnn 700的参数和第二dnn 300的参数。因此,当在将权重a、b和c各自确定为特定值并将编解码器的类型确定为特定类型之后训练第一dnn 700和第二dnn 300时,可联合优化第一dnn 700的参数和第二dnn 300的参数。
[0223]
此外,当在改变权重a、b和c以及编解码器的类型之后训练第一dnn 700和第二dnn 300时,可联合优化的第一dnn 700的参数和第二dnn 300的参数。换句话说,当在改变权重a、b和c的值以及编解码器的类型的同时训练第一dnn 700和第二dnn 300时,可在第一dnn 700和第二dnn 300中确定彼此联合训练的多条dnn设置信息。
[0224]
如上面参照图5所述,第一dnn 700和第二dnn 300的多条dnn设置信息可被映射到与第一图像相关的信息。为了设置这样的映射关系,可根据特定比特率经由特定编解码器对从第一dnn 700输出的第一训练图像802执行第一编码,并且可将通过对作为执行第一编码的结果而获得的比特流执行第一解码而获得的第二训练图像输入到第二dnn 300。换句话说,通过在设置环境使得根据特定比特率经由特定编解码器对特定分辨率的第一训练图像802执行第一编码之后训练第一dnn 700和第二dnn 300,可确定与第一训练图像802的所述分辨率、用于对第一训练图像802执行第一编码的编解码器的类型、以及作为对第一训练图像802执行第一编码的结果而获得的比特流的比特率相映射的dnn设置信息对。通过不同地改变第一训练图像802的分辨率、用于对第一训练图像802执行第一编码的编解码器的类型、以及根据第一训练图像802的第一编码获得的比特流的比特率,可确定第一dnn 700和第二dnn 300的所述多条dnn设置信息和与第一图像相关的所述多条信息之间的映射关系。
[0225]
图10是用于描述训练设备1000对第一dnn 700和第二dnn的训练处理的示图。
[0226]
参照图9描述的第一dnn 700和第二dnn 300的训练可由训练设备1000来执行。训练设备1000包括第一dnn 700和第二dnn 300。训练设备1000可以是例如ai编码设备600或单独的服务器。作为训练结果而获得的第二dnn 300的dnn设置信息被存储在ai解码设备200中。
[0227]
参照图10,在操作s840和操作s845,训练设备1000初始设置第一dnn 700和第二dnn 300的dnn设置信息。因此,第一dnn 700和第二dnn 300可根据初始的dnn设置信息进行操作。dnn设置信息可包括关于第一dnn 700和第二dnn 300中包括的卷积层的数量、针对每一个卷积层的滤波器核的数量、针对每一个卷积层的滤波器核的尺寸或每一个滤波器核的一个或更多个参数中的至少一个的信息。
[0228]
在操作s850,训练设备1000将原始训练图像801输入到第一dnn 700中。原始训练图像801可包括静止图像或运动图像中包括的至少一个帧。
[0229]
在操作s855,第一dnn 700根据初始的dnn设置信息对原始训练图像801进行处理并输出通过对原始训练图像801执行ai缩小而获得的第一训练图像802。在图10中,从第一dnn 700输出的第一训练图像802被直接输入到第二dnn 300,或者从第一dnn 700输出的第一训练图像802可由训练设备1000输入到第二dnn 300。此外,训练设备1000可经由特定编解码器对第一训练图像802执行第一编码和第一解码,然后将第二训练图像作为输入提供给第二dnn 300。
[0230]
在操作s860,第二dnn 300根据初始的dnn设置信息对第一训练图像802或第二训练图像进行处理,并输出通过对第一训练图像802或第二训练图像执行ai放大而获得的第三训练图像804。
[0231]
在操作s865,训练设备1000基于第一训练图像802计算复杂度损失信息820。
[0232]
在操作s870,训练设备1000通过将缩减的训练图像803与第一训练图像802进行比较来计算结构损失信息810。
[0233]
在操作s875,训练设备1000通过将原始训练图像801与第三训练图像804进行比较来计算质量损失信息830。
[0234]
在操作s880,基于最终损失信息经由反向传播处理来更新初始设置的dnn设置信息。训练设备1000可基于复杂度损失信息820、结构损失信息810和质量损失信息830来计算用于训练第一dnn 700的最终损失信息。
[0235]
在操作s885,第二dnn 300基于质量损失信息830或最终损失信息经由反向传播处理来更新dnn设置信息。训练设备1000可基于质量损失信息830来计算用于训练第二dnn 300的最终损失信息。
[0236]
然后,训练设备1000、第一dnn 700和第二dnn 300可重复操作s850至s885,直到最终损失信息被最小化为止,生成dnn设置信息。在每一次重复期间,第一dnn 700和第二dnn 300根据在先前操作中更新的dnn设置信息进行操作。
[0237]
下面的表1示出当根据本公开的实施例的原始图像105被执行ai编码和ai解码时以及当原始图像105经由hevc被执行编码和解码时的效果。
[0238]
【表1】
[0239][0240]
如在表1中所示出的,尽管对包括8k分辨率的300帧的内容执行ai编码和ai解码时主观图像质量高于经由hevc执行编码和解码时主观图像质量,但是比特率降低了至少50%。
[0241]
图11是用于对原始图像105执行ai缩小的设备20和用于对第二图像135执行ai放大的设备40的示图。
[0242]
设备20接收原始图像105,并通过使用ai缩小器1124和基于变换的编码器1126将图像数据25和ai数据30提供给设备40。根据实施例,图像数据25相应于图1的图像数据,并且ai数据30相应于图1的ai数据。此外,根据实施例,基于变换的编码器1126相应于图7的第
一编码器614,并且ai缩小器1124相应于图7的ai缩小器612。
[0243]
设备40接收ai数据30和图像数据25,并且通过使用基于变换的解码器1146和ai放大器1144来获得第三图像145。根据实施例,基于变换的解码器1146相应于图2的第一解码器232,并且ai放大器1144相应于图2的ai放大器234。
[0244]
根据实施例,设备20包括cpu、存储器和包括指令的计算机程序。计算机程序可被存储在存储器中。根据实施例,设备20根据cpu对计算机程序的执行来执行将参照图11描述的功能。根据实施例,将参照图11描述的功能由专用硬件芯片和/或cpu来执行。
[0245]
根据实施例,设备40包括cpu、存储器和包括指令的计算机程序。计算机程序被存储在存储器中。根据实施例,设备40根据cpu对计算机程序的执行来执行将参照图11描述的功能。根据实施例,将参照图11描述的功能由专用硬件芯片和/或cpu来执行。
[0246]
在图11中,配置控制器1122接收至少一个输入值10。根据实施例,所述至少一个输入值10可包括针对ai缩小器1124和ai放大器1144中的每一个的目标分辨率、图像数据25的比特率、图像数据25的比特率类型(例如,可变比特率类型、恒定比特率类型或平均比特率类型)或者针对基于变换的编码器1126的编解码器类型中的至少一个。所述至少一个输入值10可包括被预存储在设备20中的值或从用户输入的值。
[0247]
配置控制器1122基于接收到的输入值10来控制ai缩小器1124和基于变换的编码器1126的操作。根据实施例,配置控制器1122根据接收到的输入值10获得用于ai缩小器1124的dnn设置信息,并且利用所获得的dnn设置信息来配置ai缩小器1124。根据实施例,配置控制器1122可将接收到的输入值10发送到ai缩小器1124,并且ai缩小器1124可基于接收到的输入值10获得用于对原始图像105执行ai缩小的dnn设置信息。根据实施例,配置控制器1122可将附加信息(例如,可应用ai缩小的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息和高动态范围(hdr)的色调映射信息)连同输入值10一起提供给ai缩小器1124,并且ai缩小器1124可考虑到输入值10和附加信息,来获得dnn设置信息。根据实施例,配置控制器1122将接收到的输入值10的至少一部分发送到基于变换的编码器1126,并且基于变换的编码器1126通过特定值的比特率、特定类型的比特率和特定编解码器对第一图像115执行第一编码。
[0248]
ai缩小器1124接收原始图像105并执行参照图1、图7、图8、图9和图10描述的操作以获得第一图像115。
[0249]
根据实施例,ai数据30被提供给设备40。ai数据30可包括原始图像105与第一图像115之间的分辨率差信息或者与第一图像115相关的信息中的至少一个。可基于输入值10的目标分辨率差来确定分辨率差信息。可基于目标比特率、比特率类型或编解码器类型中的至少一个来确定与第一图像115相关的信息。根据实施例,ai数据30可包括ai放大期间使用的参数。可从ai缩小器1124将ai数据30提供给设备40。
[0250]
图像数据25随着由基于变换的编码器1126对原始图像105进行处理而被获得,并被发送到设备40。基于变换的编码器1126可根据mpeg-2、h.264avc、mpeg-4、hevc、vc-1、vp8、vp9或va1对第一图像115进行处理。
[0251]
配置控制器1142基于ai数据30控制ai放大器1144的操作。根据实施例,配置控制器1142根据接收到的ai数据30获得用于ai放大器1144的dnn设置信息,并且根据所获得的dnn设置信息配置ai放大器1144。根据实施例,配置控制器1142可将接收到的ai数据30发送
到ai放大器1144,并且ai放大器1144可基于ai数据30获得用于对第二图像135执行ai放大的dnn设置信息。根据实施例,配置控制器1142可将附加信息(例如,应用ai放大的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息和hdr的色调映射信息)连同ai数据30一起提供给ai放大器1144,并且ai放大器1144可基于ai数据30和附加信息来获得dnn设置信息。根据实施例,ai放大器1144可从配置控制器1142接收ai数据30,从基于变换的解码器1146接收预测模式信息、运动信息或量化参数信息中的至少一个,并且基于预测模式信息、运动信息和量化参数信息中的至少一个以及ai数据30来获得dnn设置信息。
[0252]
基于变换的解码器1146可对图像数据25进行处理以重建第二图像135。基于变换的解码器1146可根据mpeg-2、h.264avc、mpeg-4、h.265/hevc、vc-1、vp8、vp9或av1对图像数据25进行处理。
[0253]
ai放大器1144可通过基于所设置的dnn设置信息对从基于变换的解码器1146提供的第二图像135执行ai放大来获得第三图像145。
[0254]
ai缩小器1124可包括第一dnn,并且ai放大器1144可包括第二dnn,并且根据实施例,根据参照图9和图10描述的训练方法来训练针对第一dnn和第二dnn的dnn设置信息。
[0255]
图12示出根据本公开的实施例的卷积层1200,并且图13示出根据本公开的实施例的卷积层1300。现在参照图12和图13描述根据本公开的实施例的卷积层1200的结构和关于参数的dnn设置信息。可根据参照图12和图13描述的卷积层1200的结构来确定图3的第二dnn 300的卷积层310、卷积层330、卷积层350以及图8的第一dnn 700的卷积层710、卷积层730、卷积层750。
[0256]
图12示出根据本公开的实施例的卷积层1200的结构。
[0257]
卷积层1200由一个或更多个滤波器核组成。每一个滤波器核包括用于从针对相应输入通道的元素生成针对输出通道的元素的参数。滤波器核的参数包括权重和偏置。
[0258]
滤波器核的权重是计算针对输入通道的元素的加权和所需的参数。例如,图4的滤波器核430中的f1至f9是滤波器核430的权重。第二图像135中的i1、i2、i3、i8、i9、i10、i15、i16和i17是针对输入通道的元素。针对输出通道的特征图450中的m1可被确定为第二图像135中的i1、i2、i3、i8、i9、i10、i15、i16和i17基于滤波器核430的权重f1至f9的加权和。
[0259]
滤波器核的偏置是用于调整输出到输出通道的元素的参数。可通过将偏置与根据滤波器核的权重而确定的针对输入通道的元素的加权和相加来确定针对输出通道的每一个元素。例如,可通过将偏置与第二图像135中的i1、i2、i3、i8、i9、i10、i15、i16和i17的加权和相加来确定作为针对输出通道的元素的特征图450中的m1。
[0260]
如同图3的第二卷积层330,卷积层1200可将通过利用四个滤波器核(即,第一滤波器核1210、第二滤波器核1220、第三滤波器核1230和第四滤波器核1240)对从四个输入通道(即,第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208)接收的元素进行滤波而获得的值分别输出到四个输出通道(即,第一输出通道1260、第二输出通道1262、第三输出通道1264和第四输出通道1266)。
[0261]
第一滤波器核1210可包括三维(3d)权重矩阵和第一偏置1250。例如,第一滤波器核1210的3d权重矩阵的大小可表示为3
×3×
4。标注3
×3×
4分别表示滤波器核1210的行、列和深度。根据本公开的实施例,可不同地确定第一滤波器核1210、第二滤波器核1220、第三滤波器核1230和第四滤波器核1240的3d权重矩阵的大小。为了便于描述,图12示出第一
滤波器核1210的3d权重矩阵包括四个大小为3
×
3的二维(2d)权重矩阵。类似地,图12还示出第二滤波器核1220、第三滤波器核1230和第四滤波器核1240中的每一个滤波器核的3d权重矩阵包括四个大小为3
×
3的2d权重矩阵。
[0262]
第一滤波器核1210的第一深度的2d权重矩阵1212被用于对针对第一输入通道1202的元素进行滤波。另外,第一滤波器核1210的第二深度的2d权重矩阵1214、第三深度的2d权重矩阵1216和第四深度的2d权重矩阵1218被分别用于对针对第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波。
[0263]
类似地,第二滤波器核1220的深度的2d权重矩阵1222、2d权重矩阵1224、2d权重矩阵1226和2d权重矩阵1228被分别用于对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波。此外,第三滤波器核1230的深度的2d权重矩阵1232、2d权重矩阵1234、2d权重矩阵1236和2d权重矩阵1238被分别用于对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波。另外,第四滤波器核1240的深度的2d权重矩阵1242、2d权重矩阵1244、2d权重矩阵1246和2d权重矩阵1248被分别用于对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波。
[0264]
第一滤波器核1210包括第一偏置1250。同样,第二滤波器核1220、第三滤波器核1230和第四滤波器核1240分别包括第二偏置1252、第三偏置1254和第四偏置1256。第一偏置1250、第二偏置1252、第三偏置1254和第四偏置1256被用于调整针对第一输出通道1260、第二输出通道1262、第三输出通道1264和第四输出通道1266的元素。
[0265]
根据第一滤波器核1210的第一深度的2d权重矩阵1212中的权重来确定针对第一输入通道1202的元素的第一加权和。根据第一滤波器核1210的第二深度的2d权重矩阵1214中的权重来确定针对第二输入通道1204的元素的第二加权和。此外,根据第一滤波器核1210的第三深度的2d权重矩阵1216中的权重来确定针对第三输入通道1206的元素的第三加权和。根据第一滤波器核1210的第四深度的2d权重矩阵1218中的权重来确定针对第一输入通道1202的元素的第四加权和。另外,可通过将第一偏置1250与第一加权和至第四加权和的总和相加来确定针对第一输出通道1260的元素。
[0266]
类似于确定针对第一输出通道1260的元素的上述方法,可确定针对第二输出通道1262、第三输出通道1264和第四输出通道1266的元素。详细地讲,可通过根据第二滤波器核1220的四个2d权重矩阵1222、1224、1226和1228以及第二偏置1252对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波来确定针对第二输出通道1262的元素。类似地,可通过根据第三滤波器核1230的四个2d权重矩阵1232、1234、1236和1238以及第三偏置1254对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波来确定针对第三输出通道1264的元素。另外,可通过根据第四滤波器核1240的四个2d权重矩阵1242、1244、1246和1248以及第四偏置1256对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208的元素进行滤波来确定针对第四输出通道1266的元素。
[0267]
尽管已经参照图12描述了卷积层1200具有四个输入通道(即,第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208),但根据实施例,可不同地配置输入通道的数量。此外,虽然已经参照图12描述了卷积层1200具有四个输出通道(即,第
一输出通道1260、第二输出通道1262、第三输出通道1264和第四输出通道1266),但根据本公开的实施例,可不同地配置输出通道的数量。包括在卷积层1200中的滤波器核的数量根据输出通道的数量来确定。另外,虽然为了方便起见,图12示出第一滤波器核1210、第二滤波器核1220、第三滤波器核1230和第四滤波器核1240均具有3
×
3(3行和3列)的大小,但根据本公开的实施例,可不同地设置或布置第一滤波器核1210、第二滤波器核1220、第三滤波器核1230和第四滤波器核1240中的每一个滤波器核中的行和列的数量。
[0268]
图13示出根据本公开的实施例的图12的卷积层1200中的第一滤波器核1210和第二滤波器核1220的权重和偏置。因此,除了图4的滤波器核430的描述之外,现在还参照图13描述滤波器核的功能。图12的附图标号12xx与图13的附图标号13xx相应。图13中的附图标号的一部分可以不与图12的任何附图标号相应。
[0269]
为了方便描述,图13仅示出针对第一滤波器核1210和第二滤波器核1220的权重和偏置。然而,类似于第一滤波器核1210和第二滤波器核1220,第三滤波器核1230和第四滤波器核1240可各自包括权重和偏置。
[0270]
参照图13,针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208中的每一个的2d数据阵列的大小是3
×
3。此外,第一输出通道1260和第二输出通道1262中的每一个的2d数据阵列的大小是3
×
3。尽管为了方便起见,图13示出每一个输入通道或每一个输出通道的2d数据阵列的大小为3
×
3,但根据本公开的实施例,可不同地配置第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208中的每一个以及第一输出通道1260和和第二输出通道1262中的每一个的2d数据阵列的大小。
[0271]
如在图13中所示出的,可对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208中的每一个的2d数据阵列的顶部、底部、右侧和左侧执行填充(诸如,零填充或镜像填充)。零填充是指将值为0的元素添加到2d数据阵列的处理。镜像填充是将具有与位于2d数据阵列的边界中的元素相同的值的元素添加到2d数据阵列的处理。参照图13,可对针对第一输入通道1202、第二输入通道1204、第三输入通道1206和第四输入通道1208中的每一个的2d数据阵列执行零填充以生成大小为5
×
5的2d数据阵列。
[0272]
通过在针对第一输入通道1302、第二输入通道1304、第三输入通道1306和第四输入通道1308的大小为5
×
5的经过零填充的2d数据阵列的左上角处分别对大小为3
×
3的2d数据阵列1370、2d数据阵列1372、2d数据阵列1374和2d数据阵列1376进行滤波来确定针对第一输出通道1360的2d数据阵列中的左上方元素1380。针对第一输出通道1260(在图12中示出)的2d数据阵列中的每一个元素的位置与相应于该元素的2d数据阵列1370、2d数据阵列1372、2d数据阵列1374和2d数据阵列1376的位置相应。因此,依据针对第一输出通道1260(在图12中示出)的2d数据阵列中的左上方元素1380的位置来确定相应于左上方元素1380的2d数据阵列1370、2d数据阵列1372、2d数据阵列1374和2d数据阵列1376的位置。
[0273]
将2d数据阵列1370中的元素[0,0,0;0,0,1;0,0,1]逐元素地乘以第一滤波器核1310的第一深度的2d权重矩阵1312的元素[1,0,-1;1,0,-1;1,0,-1]。然后,将作为所有逐元素乘积的总和的-2确定为通过对2d数据阵列1370进行滤波而获得的值。(0
×
1 0
×
0 0
×
(-1) 0
×
1 0
×
0 1
×
(-1) 0
×
1 0
×
0 1
×
(-1)=-2)。
[0274]
根据上述滤波方法,通过利用第一滤波器核1310的第二深度的2d权重矩阵1314对2d数据阵列1372进行滤波而获得的值被确定为-2。类似地,通过根据第一滤波器核1310的
第三深度的2d权重矩阵1316对2d数据阵列1374进行滤波而获得的值被确定为0。然后,通过根据第一滤波器核1310的第四深度的2d权重矩阵1318对2d数据阵列1376进行滤波而获得的值被确定为-1。
[0275]
最后,将作为通过将第一偏置1350与通过对2d数据阵列1370、2d数据阵列1372、2d数据阵列1374和2d数据阵列1376进行滤波而获得的所有值的总和相加而获得的结果的-4((-2) (-2) 0 (-1) 1=-4)确定为针对第一输出通道1260的左上方元素1380的值。然后按照与左上方元素1380的值相同的方式确定针对第一输出通道1260的2d数据阵列中的其余元素的值。此外,按照与针对第一输出通道1260的2d数据阵列的元素相同的方式确定针对第二输出通道1262的2d数据阵列的元素。
[0276]
为了改进ai放大的性能,可根据图像特性、网络状态、内容提供商的选择等来优化包括上面参照图12和图13描述的卷积层1200的dnn。因此,可根据图像特性、网络状态、内容提供商的选择等来不同地确定dnn中包括的卷积层的数量以及dnn中每一个卷积层的结构和参数。
[0277]
参照图12和图13描述的卷积层1200的结构和参数可被应用于图3的第二dnn 300中的第一卷积层310、第二卷积层330和第三卷积层350以及图8的第一dnn 700中的第一卷积层710、第二卷积层730和第三卷积层750。
[0278]
现在参照图14至图16描述包括图像数据1400和ai数据1440的ai编码数据的结构。
[0279]
图14示出图像数据1400和ai数据1440的结构以及图像数据1400与ai数据1440之间的相应关系。
[0280]
参照图14描述图像数据1400的视频-帧组-帧分层结构。图14的视频1402是包括图像数据1400的所有连续帧的数据单元。视频参数集的参数信息可被应用于视频1402中的所有帧。视频参数集被包括在视频头1404中。
[0281]
视频1402可包括多个帧组(或编码视频序列)。帧组是由共享帧组参数集(或序列参数集)的参数信息的一个或更多个连续帧组成的数据单元。帧组参数集可被包括在帧组头中。例如,第一帧组1410的帧组参数集可被包括在第一帧组头1412中。另外,第二帧组1414的帧组参数集可被包括在第二帧组头1416中。
[0282]
每一个帧组可在不参考其它帧组的情况下被独立地编码。每一个帧组包括在不参考其他帧的情况下编码的即时解码刷新(idr)帧或帧内随机接入点(irap)帧。参考idr帧(或irap帧)对帧组中的所有其余帧进行编码。因此,第一帧组1410在不参考视频1402中的其他帧组的情况下被独立地编码。作为第一帧组1410中的第一编码帧的第一帧1420是idr帧(或irap帧)。参考第一帧1420对包括第二帧1430的第一帧组1410中的所有其余帧进行编码。
[0283]
每一个帧表示包括在视频中的一个静止图像。帧的帧头可包括帧参数集,其中,帧参数集包括应用于帧的参数信息。例如,第一帧1420的第一帧头1422可包括应用于第一帧1420的帧参数集。类似地,第二帧1430的第二帧头1432可包括应用于第二帧1430的帧参数集。
[0284]
参照图14描述根据上述视频-帧组-帧分层结构对ai数据1440进行分类的方法。可根据ai数据1440被应用于的数据单元的类型将ai数据1440分类为视频ai数据1442、帧组ai数据1450和帧ai数据1460。视频ai数据1442是指应用于视频的ai数据,并且帧组ai数据
1450是指应用于帧组的ai数据。另外,帧ai数据1460是指应用于帧的ai数据。
[0285]
视频ai数据1442与视频头1404相应。因此,视频ai数据1442可与视频头1404并行地被解码。另外,可在对视频头1404进行解码之前对视频ai数据1442进行解码。可选地,可在对视频头1404进行解码之后对视频ai数据1442进行解码。
[0286]
帧组ai数据1450与帧组头相应。参照图14,第一帧组ai数据1452与第一帧组头1412相应。此外,第二帧组ai数据1454与第二帧组头1416相应。第一帧组ai数据1452和第二帧组ai数据1454可分别与第一帧组头1412和第二帧组头1416并行地被解码。可选地,例如,可紧接在对第一帧组头1412和第二帧组头1416进行解码之前分别对第一帧组ai数据1452和第二帧组ai数据1454进行解码。可选地,可紧接在对第一帧组头1412和第二帧组头1416进行解码之后分别对第一帧组ai数据1452和第二帧组ai数据1454进行解码。
[0287]
帧ai数据1460与帧头相应。参照图14,第一帧ai数据1462与第一帧头1422相应。此外,第二帧ai数据1464与第二帧头1432相应。第一帧ai数据1462和第二帧ai数据1464可分别与第一帧头1422和第二帧头1432并行地被解码。可选地,例如,可紧接在对第一帧头1422和第二帧头1432进行解码之前分别对第一帧ai数据1462和第二帧ai数据1464进行解码。可选地,可紧接在对第一帧头1422和第二帧头1432进行解码之后分别对第一帧ai数据1462和第二帧ai数据1464进行解码。
[0288]
根据本公开的实施例,图7的数据处理器632可与相应于ai数据1440的文件分开地生成相应于图像数据1400的文件。因此,通信器634将ai编码数据作为两个单独的文件发送到图2的通信器212。因此,通信器634可经由不同的通信通道发送与图像数据1400相应的文件和与ai数据1440相应的文件。通信器634还可在不同时间顺序地发送与图像数据1400相应的文件和与ai数据1440相应的文件。在本公开中,文件是指存储在存储器中的数据的集合。视频文件是存储在存储器中的图像数据的集合,并且图像数据可以以比特流的形式被实现。
[0289]
在本公开的上述实施例中,根据参照图14描述的图像数据1400和ai数据1440之间的相应关系,可根据对与图像数据1400相应的文件进行解码的处理来对与ai数据1440相应的文件进行解码。此外,因为与图像数据1400相应的文件(或比特流)和与ai数据1440相应的文件分开,所以与图像数据1400相应的文件和与ai数据1440相应的文件可各自包括关于两个文件的同步的信息。
[0290]
根据本公开的实施例,图7的数据处理器632可将ai编码数据生成为包括图像数据1400和ai数据1440两者的单个文件。通信器634将ai编码数据作为单个文件发送到图2中的通信器212。
[0291]
根据本公开的实施例,ai数据1440可以不被嵌入在图像数据1400中,而是与图像数据1400分开。因此,因为ai编码数据被配置为单个文件,但ai数据1440与图像数据1400分开,所以ai数据1440和/或图像数据1400可包含关于ai数据1440和图像数据1400的同步的信息。可选地,可根据ai数据1440确定ai放大所需的第二dnn 300,然后可对图像数据1400进行解码。
[0292]
可选地,ai数据1440也可被嵌入图像数据1400中。例如,视频ai数据1442可被嵌入在视频头1404中。在这种情况下,视频头1404可包括视频ai数据1442以及视频参数集。可选地,视频ai数据1442可独立于视频头1404被嵌入在单个文件中以置于视频头1404之前或之
后。因此,可与对视频头1404的解码同时地执行对视频ai数据1442的解码,可紧接在对视频头1404的解码之前执行对视频ai数据1442的解码,或者可紧接在对视频头1404的解码之后执行对视频ai数据1442的解码。
[0293]
类似地,第一帧组头1412可包括第一帧组ai数据1452以及帧组参数集。可选地,第一帧组ai数据1452可独立于第一帧组头1412被嵌入在单个文件中以置于第一帧组头1412之前或之后。因此,可与对第一帧组头1412的解码同时地执行对第一帧组ai数据1452的解码,或者可在对第一帧组头1412的解码之前或之后执行对第一帧组ai数据1452的解码。
[0294]
类似地,第一帧头1422可包括第一帧ai数据1462以及帧参数集。可选地,第一帧ai数据1462可独立于第一帧头1422被嵌入在单个文件中以置于第一帧头1422之前或之后。因此,可与对第一帧头1422的解码同时地执行对第一帧ai数据1462的解码,可在对第一帧头1422的解码之前执行对第一帧ai数据1462的解码,或者可在对第一帧头1422的解码之后执行对第一帧ai数据1462的解码。
[0295]
图15示出根据本公开的实施例的ai数据1520在单个文件内与图像数据分开时的ai编码数据。如在图15中所示出的,ai编码数据1500以预定义的容器格式被包括在视频文件1500中。预定义的容器格式可以是mp4、音频视频交错格式(avi)、matroska(mkv)、flash视频(flv)等。
[0296]
视频文件1500包括元数据框1510和媒体数据框1530。元数据框1510包括关于媒体数据框1530中包括的媒体数据的信息。例如,元数据框1510可包括关于以下信息的多条信息:媒体数据的类型、用于对媒体数据进行编码的编解码器的类型、以及媒体的播放时间。
[0297]
元数据框1510可包括ai数据1520。根据以预定义的容器格式提供的编码方法对ai数据1520进行编码,然后将编码的ai数据1520存储在元数据框1510中。存储在元数据框1510中的ai数据1520可独立于图像数据被配置。
[0298]
ai数据1520包括视频ai数据1522、帧组ai数据1524和帧ai数据1526。视频ai数据1522、帧组ai数据1524和帧ai数据1526分别被设置为相应于视频头1532、帧组头1536和帧头1540。
[0299]
可在媒体数据框1530中的图像数据之前对元数据框1510中的ai数据1520进行解码。因此,可在对图像数据进行解码之前根据ai数据1520来确定ai放大所需的第二dnn 300。可针对整个视频(即,视频中的多个帧中的所有帧)确定第二dnn 300。可选地,对于基于每个帧组的自适应ai放大,可针对每一个帧组不同地确定第二dnn 300。可选地,对于基于每个帧的自适应ai放大,可针对每一个帧不同地确定第二dnn 300。
[0300]
元数据框1510中的ai数据1520可与媒体数据框1530中的图像数据一起被解码。可紧接在对视频头1532进行解码之前或之后执行视频ai数据1522的解码。可选地,视频ai数据1522可与视频头1532并行地被解码。类似地,可紧接在对帧组头1536进行解码之前或之后执行帧组ai数据1524的解码。可选地,帧组ai数据1524可与帧组头1536并行地被解码。此外,可紧接在对帧头1540进行解码之前或之后执行帧ai数据1526的解码。可选地,帧ai数据1526可与帧头1540并行地被解码。
[0301]
虽然为了便于描述,图15示出视频文件1500包括一个元数据框1510和一个媒体数据框1530,但视频文件1500可包括两个或更多个元数据框1510以及两个或更多个媒体数据框。在这种情况下,可将通过以预设时间间隔将图像数据划分为单元而获得的两个或更多
个图像数据段存储在两个或更多个媒体数据框中。此外,关于存储在所述两个或更多个媒体数据框中的所述两个或更多个图像数据段的多条信息可分别被包括在所述两个或更多个元数据框中。另外,所述两个或更多个元数据框可各自包括ai数据。
[0302]
尽管已经参照图15描述了ai数据1520被包括在元数据框1510中,但根据本公开的实施例,ai数据1520可被包括在媒体数据框1530中。在此情况下,ai数据1520可独立于媒体数据框1530内的图像数据被配置。
[0303]
图16示出根据本公开的实施例的ai数据在单个文件中被嵌入图像数据中的情况下的ai编码数据。
[0304]
视频文件1600包括元数据框1610和媒体数据框1620。因为ai数据被嵌入在图像数据中,所以元数据框1610不包括ai数据。媒体数据框1620反而包括在其中嵌入有ai数据的图像数据。ai数据可根据用于图像数据的视频编解码器被编码。用于图像数据的视频编解码器的示例可包括h.264、hevc、avs2.0、xvid等。
[0305]
参照图16,视频ai数据1624可被包括在视频头1622中。因此,视频ai数据1624可与包括在视频头1622中的视频参数一起被解码。此外,帧组ai数据1634可被包括在帧组头1632中。帧组ai数据1634可与包括在帧组头1632中的帧组参数一起被解码。另外,帧ai数据1644可被包括在帧头1642中。帧ai数据1644可与包括在帧头1642中的帧参数一起被解码。
[0306]
根据本公开的实施例,与图16不同,视频ai数据1624可位于视频头1622之前或之后。在这种情况下,可在对包括在视频头1622中的视频参数进行解码之前或之后对视频ai数据1624进行解码。此外,帧组ai数据1632可位于帧组头1634之前或之后。因此,可在对包括在帧组头1634中的帧组参数进行解码之前或之后对帧组ai数据1632进行解码。另外,帧ai数据1644可位于帧头1642之前或之后。因此,可在对包括在帧头1642中的帧参数进行解码之前或之后对帧ai数据1644进行解码。根据本公开的实施例,视频ai数据1624、帧组ai数据1632和帧ai数据1644均为补充增强信息(sei)消息的形式,并且分别与视频头1622、帧组头1634和帧头1642分开。
[0307]
图15示出ai数据1520仅被包括在元数据框1510中,而图16示出ai数据被嵌入在包括在媒体数据框1620中的图像数据中。然而,根据本发明的实施例,ai数据的一部分可被包括在元数据框1610中,同时ai数据的其余部分可被包括媒体数据框1620中。例如,应用于整个图像数据的视频ai数据可被包括在元数据框1610中,同时应用于帧组和帧的ai数据可被包括在媒体数据框1620中。此外,根据本公开的实施例,ai数据的一部分可以不被包括在视频文件1600中,并且可被单独发送。
[0308]
参照图17至图30描述自适应地确定用于针对视频、帧组和/或帧执行ai放大的第二dnn 300的dnn设置信息的方法。此外,描述一种更新针对视频、帧组和/或帧的dnn设置信息以自适应地确定针对视频、帧组和/或帧的dnn设置信息的方法。因此,可通过应用针对当前视频、当前帧组和/或当前帧自适应地确定的更新的dnn设置信息而不是基于训练图像预先设置的默认dnn设置信息来提高ai放大的准确性。
[0309]
图17是包括与图2的ai解码设备200的ai放大器234相比具有详细功能的ai放大器1734的ai解码设备1700的框图。
[0310]
ai解码设备1700的接收器1710中包括的通信器1712、解析器1714和输出器1716可分别执行ai解码设备200的接收器210中包括的通信器212、解析器214和输出器216的功能。
此外,ai解码设备1700的ai解码器1730中包括的第一解码器1732和ai放大器1734可分别执行ai解码设备200的ai解码器230中包括的第一解码器232和ai放大器234的功能。
[0311]
当如图14中所示出的将图像数据和ai数据作为单独的文件发送时,由通信器1712接收图像数据和ai数据。然后,由输出器1716将图像数据和ai数据分别发送到第一解码器1732和ai放大器1734。
[0312]
当如图15中所示出的图像数据和ai数据在单个视频文件内彼此分开并被发送时,由通信器1712接收包括图像数据和ai数据的视频文件。然后,由解析器1714从视频文件中提取图像数据和ai数据,并由输出器1716将图像数据和ai数据分别发送到第一解码器1732和ai放大器1734。
[0313]
当如图16中所示出的发送包括其中嵌入了ai数据的图像数据的视频文件时,通信器1712接收视频文件。然后,由输出器1716将其中嵌入了ai数据的图像数据发送到第一解码器1732。在对图像数据进行解码的处理时,由第一解码器1732提取嵌入在图像数据中的ai数据。然后,将通过对图像数据进行解码而获得的第二图像135发送到ai放大器1734。
[0314]
ai解码设备1700的ai解码器1730中包括的ai放大器1734可包括dnn控制器1736和图像处理器1738。dnn控制器1736可基于ai数据确定应用于视频的视频dnn设置信息、应用于帧组的帧组dnn设置信息、以及应用于帧的帧dnn设置信息。
[0315]
dnn控制器1736可基于预设的一条或更多条默认dnn设置信息来确定视频dnn设置信息、帧组dnn设置信息和帧dnn设置信息。此外,dnn控制器1736可通过使用视频dnn设置信息、帧组dnn设置信息和/或帧dnn设置信息来设置第二dnn 300。所述一条或更多条默认dnn设置信息可被预先存储在ai放大器1734中。
[0316]
此外,dnn控制器1736可使用根据dnn更新信息生成的更新的dnn设置信息,而不是默认dnn设置信息。此外,dnn控制器1736可基于更新的dnn设置信息来确定根据视频、帧组和帧的图像特性而优化的视频dnn设置信息、帧组dnn设置信息和帧dnn设置信息。
[0317]
dnn更新信息可包括用于生成针对视频、帧组或帧而优化的dnn设置信息的信息。此外,更新的dnn设置信息可包括根据dnn更新信息生成的dnn设置信息。此外,更新的dnn是根据更新的dnn设置信息而设置的dnn。
[0318]
此外,图像处理器1738可根据由dnn控制器1736设置的第二dnn 300对第二图像135执行ai放大。
[0319]
ai解码设备1700可处理以如参照图14至图16所述的各种形式发送的ai编码数据。
[0320]
在下文中,将参照图18至图22描述由dnn控制器1736执行的确定视频dnn设置信息、帧组dnn设置信息和/或帧dnn设置信息的方法。
[0321]
图18示出根据本公开的实施例的用于基于每个视频更新dnn设置信息的dnn设置信息确定方法。
[0322]
dnn控制器1736(图17中所示)确定是否将针对视频1830更新dnn设置信息(操作1802)。dnn控制器1736可根据视频dnn更新许可信息来确定是否将更新dnn设置信息。视频dnn更新许可信息指示是否更新针对视频1830的dnn设置信息。
[0323]
当不针对视频1830更新dnn设置信息时,dnn控制器1736从一条或更多条默认dnn设置信息之中确定视频dnn设置信息(操作1804)。dnn控制器1736可根据视频dnn索引信息从一条或更多条默认dnn设置信息之中确定视频dnn设置信息。视频dnn索引信息指示多条
候选dnn设置信息之中的用于视频1830的dnn设置信息。
[0324]
当针对视频1830更新dnn设置信息时,dnn控制器1736将根据视频dnn更新信息而生成的更新的dnn设置信息确定为视频dnn设置信息(操作1806)。视频dnn更新信息可包括与应用于视频1830的放大dnn相关的层的数量、输入通道和输出通道的数量、滤波器核的大小、滤波器核的权重和偏置等。
[0325]
dnn控制器1736将在操作1804或操作1806中确定的视频dnn设置信息设置为针对第一帧组1832、第二帧组1834、第三帧组1836等的帧组dnn设置信息(操作1808)。
[0326]
图19示出根据本公开的实施例的用于基于每个视频更新一条或更多条dnn设置信息的dnn设置信息确定方法。
[0327]
dnn控制器1736(图17中所示)确定是否将针对视频1930更新dnn设置信息(操作1902)。dnn控制器1736可根据视频dnn更新许可信息来确定是否将更新dnn设置信息。
[0328]
当不针对视频1930更新dnn设置信息时,dnn控制器1736从一条或更多条默认dnn设置信息之中确定一条或更多条视频dnn设置信息(操作1904)。dnn控制器1736可基于视频dnn索引信息从一条或更多条默认dnn设置信息中确定一条或更多条视频dnn设置信息。
[0329]
当针对视频1930更新dnn设置信息时,dnn控制器1736将根据视频dnn更新信息而生成的一条或更多条更新的dnn设置信息确定为一条或更多条视频dnn设置信息(操作1906)。
[0330]
dnn控制器1736将在操作1904或操作1906中确定的一条或更多条视频dnn设置信息中的一条视频dnn设置信息确定为针对当前帧组的帧组dnn设置信息(操作1908)。
[0331]
视频1930由包括第一帧组1932、第二帧组1934、第三帧组1936等的多个帧组组成。当前帧组是包括在视频1930中的帧组之中的当前正被解码的帧组。针对帧组中的每一个帧组执行操作1908。换句话说,dnn控制器1736可从所述一个或更多个视频dnn设置信息之中针对每一个帧组独立地选择一条视频dnn设置信息。因此,可分别针对第一帧组1932和第二帧组1934选择不同的视频dnn设置信息。
[0332]
dnn控制器1736可根据帧组dnn索引信息从一条或更多条视频dnn设置信息之中选择一条视频dnn设置信息。帧组dnn索引信息指示多条可用候选dnn设置信息之中的用于帧组的dnn设置信息。
[0333]
图20示出根据本公开的实施例的用于基于每个视频并且基于每个帧组更新一条或更多条dnn设置信息的dnn设置信息确定方法。
[0334]
dnn控制器1736(图17中所示)确定是否将针对视频2030更新dnn设置信息(操作2002)。dnn控制器1736可根据视频dnn更新许可信息来确定是否将更新dnn设置信息。
[0335]
当不针对视频2030更新dnn设置信息时,dnn控制器1736从一条或更多条默认dnn设置信息之中确定一条或更多条视频dnn设置信息(操作2004)。dnn控制器1736可基于视频dnn索引信息从一条或更多条默认dnn设置信息之中确定一条或更多条视频dnn设置信息。
[0336]
当针对视频2030更新dnn设置信息时,dnn控制器1736将根据视频dnn更新信息而生成的一条或更多条更新的dnn设置信息确定为一条或更多条视频dnn设置信息(操作2006)。
[0337]
针对每一个帧组执行操作2008至操作2012。视频2030包括包含第一帧组2032、第二帧组2034、第三帧组2036等的多个帧组。当前帧组是包括在视频2030中的多个帧组之中
的当前正被解码的帧组。
[0338]
dnn控制器1736确定是否将针对当前帧组更新dnn设置信息(操作2008)。dnn控制器1736可根据帧组dnn更新许可信息来确定是否将更新dnn设置信息。帧组dnn更新许可信息指示是否针对当前帧组更新dnn设置信息。
[0339]
当不针对当前帧组更新dnn设置信息时,dnn控制器1736将在操作2004或操作2006中确定的所述一条或更多条视频dnn设置信息中的一条视频dnn设置信息确定为针对当前帧组的帧组dnn设置信息(操作2010)。dnn控制器1736可根据帧组dnn索引信息从一条或更多条视频dnn设置信息中选择一条视频dnn设置信息。
[0340]
当针对当前帧组更新dnn设置信息时,dnn控制器1736将根据帧组dnn更新信息而生成的更新的dnn设置信息确定为帧组dnn设置信息(操作2012)。
[0341]
根据本公开的实施例,帧组dnn更新信息可包括与应用于帧组的第二dnn 300的结构相关的dnn设置信息,使得可以在不参考视频dnn设置信息的情况下设置放大dnn。帧组dnn更新信息还可包括关于第二dnn 300中的滤波器核的参数的dnn设置信息。
[0342]
根据本公开的另一实施例,可根据视频dnn设置信息来确定与第二dnn300的结构相关的dnn设置信息。此外,帧组dnn更新信息可仅包括关于将在第二dnn 300中设置的滤波器核的参数的dnn设置信息。因此,操作2012可包括从所述一条或更多条视频dnn设置信息之中选择一条视频dnn设置信息。然后,可基于所选择的视频dnn设置信息来确定放大dnn的结构。此外,可基于帧组dnn更新信息来确定放大dnn中的滤波器核的权重和偏置。
[0343]
图21示出根据本公开实施例的用于基于每个视频并且基于每个帧组更新一条或更多条dnn设置信息的dnn设置信息确定方法。与图20的dnn设置信息确定方法2000不同,根据图21的dnn设置信息确定方法2100,可通过参考针对先前解码的帧组的dnn设置信息来确定针对帧组的dnn设置信息。
[0344]
根据图18至图20的dnn设置信息确定方法,针对作为视频的更低级别数据单元的帧组,纵向参考视频dnn设置信息。然而,当针对在时间上连续的帧组的多条帧组dnn设置信息彼此相同或相似时,可通过横向参考帧组之间的dnn设置信息来减小确定dnn设置信息所需的ai数据的大小。
[0345]
dnn控制器1736确定是否将针对视频2130更新dnn设置信息(操作2102)。dnn控制器1736可根据视频dnn更新许可信息来确定是否将更新dnn设置信息。
[0346]
当不针对视频2130更新dnn设置信息时,dnn控制器1736从一条或更多条默认dnn设置信息之中确定一条或更多条视频dnn设置信息(操作2104)。dnn控制器1736可基于视频dnn索引信息从一条或更多条默认dnn设置信息之中确定一条或更多条视频dnn设置信息。
[0347]
当针对视频2030更新dnn设置信息时,dnn控制器1736将根据视频dnn更新信息而生成的一条或更多条更新的dnn设置信息确定为一条或更多条视频dnn设置信息(操作2106)。
[0348]
视频2130包括包含第一帧组2132、第二帧组2134、第三帧组2136等的多个帧组。可通过仅参考在操作2104或操作2106中确定的一条或更多条视频dnn设置信息来确定初始解码的针对第一帧组2132的帧组dnn设置信息。另一方面,可通过参考在操作2104或操作2106中确定的一条或更多条视频dnn设置信息以及针对先前解码的帧组的帧组dnn设置信息来确定针对在第一帧组2132之后解码的帧组(诸如第二帧组2134和第三帧组2136)的帧组dnn
设置信息。
[0349]
针对第一帧组2132执行操作2108、操作2110和操作2112。
[0350]
dnn控制器1736确定是否将针对第一帧组2132更新dnn设置信息(操作2108)。dnn控制器1736可根据帧组dnn更新许可信息来确定是否将更新dnn设置信息。
[0351]
当不针对作为当前帧组的第一帧组213更新dnn设置信息时,dnn控制器1736将在操作2104或存在2106中确定的一条或更多条视频dnn设置信息中的一条视频dnn设置信息确定为针对当前帧组的帧组dnn设置信息(操作2110)。dnn控制器1736可根据帧组dnn索引信息从一条或更多条视频dnn设置信息之中选择一条视频dnn设置信息。
[0352]
当针对当前帧组更新dnn设置信息时,dnn控制器1736将基于帧组dnn更新信息而设置的更新的dnn设置信息确定为帧组dnn设置信息(操作2112)。根据本公开的实施例,dnn控制器1736可在不参考视频dnn设置信息的情况下确定帧组dnn设置信息。根据另一实施例,dnn控制器1736可根据视频dnn设置信息来确定与第二dnn 300的结构相关的帧组dnn设置信息。此外,dnn控制器1736可基于帧组dnn更新信息来确定关于第二dnn 300中的滤波器核的参数的帧组dnn设置信息。
[0353]
针对除了第一帧组2132之外的其余帧组中的每一个帧组执行操作2114、操作2116和操作2118。
[0354]
dnn控制器1736确定是否将针对当前帧组更新dnn设置信息(操作2114)。与操作2108类似,dnn控制器1736可根据帧组dnn更新许可信息来确定是否将更新dnn设置信息。
[0355]
当不针对当前帧组更新dnn设置信息时,dnn控制器1736将在操作2104或操作2106中确定的一条或更多条视频dnn设置信息以及针对在当前帧组之前解码的先前帧组的一条或更多条帧组dnn设置信息之中的一条dnn设置信息确定为针对当前帧组的帧组dnn设置信息(操作2116)。
[0356]
当针对当前帧组更新dnn设置信息时,dnn控制器1736将基于帧组dnn更新信息而设置的更新的dnn设置信息确定为针对当前帧组的帧组dnn设置信息(操作2118)。根据本公开的实施例,dnn控制器1736可在不参考视频dnn设置信息或针对先前帧组的帧组dnn设置信息的情况下确定针对当前帧组的帧组dnn设置信息。根据本公开的另一实施例,dnn控制器1736可根据视频dnn设置信息或针对先前帧组的帧组dnn设置信息来确定与第二dnn 300的结构相关的帧组dnn设置信息。此外,dnn控制器1736可基于帧组dnn更新信息来确定关于将在第二dnn 300中设置的滤波器核的参数的帧组dnn设置信息。
[0357]
根据本公开的实施例,在操作2114之前,dnn控制器1736可针对除了第一帧组2132之外的其余帧组中的每一个帧组获得帧组dnn依赖性信息,其中,帧组dnn依赖性信息指示是否将参考针对紧接在前的帧组的帧组dnn设置信息。此外,在操作2114之前,dnn控制器1736可基于帧组dnn依赖性信息来确定是否通过参考针对紧接在前的帧组的帧组dnn设置信息来确定针对当前帧组的帧组dnn设置信息。因为相同或相似的帧组dnn设置信息很可能将被用于连续的帧组,所以可通过使用帧组dnn依赖性信息来减小确定帧组dnn设置信息所需的数据的大小。
[0358]
图22示出根据本公开的实施例的用于基于每个帧更新dnn设置信息的dnn设置信息确定方法。根据图22所示出的dnn设置信息确定方法,可针对每一个帧应用不同的dnn设置信息。
[0359]
dnn控制器1736根据在图18至图21中所示出的确定帧组dnn设置信息的方法来确定针对当前帧组2210的帧组dnn设置信息(操作2202)。
[0360]
dnn控制器1736确定是否将针对当前帧更新dnn设置信息(操作2204)。当前帧是包括在当前帧组2210中的帧之中的当前正被解码的帧。当前帧组2210包括包含第一帧2212、第二帧2214和第三帧2216等的多个帧。例如,因为针对每一个帧独立地确定帧dnn设置信息,所以可将不同的帧dnn设置信息分别应用于第一帧2212和第二帧2214。
[0361]
当不针对当前帧更新dnn设置信息时,dnn控制器1736将帧组dnn设置信息确定为针对当前帧的帧dnn设置信息(操作2206)。
[0362]
当针对当前帧更新dnn设置信息时,dnn控制器1736将根据帧dnn更新信息而生成的更新的dnn设置信息确定为帧dnn设置信息(操作2208)。根据本公开的实施例,dnn控制器1736可在不参考帧组dnn设置信息的情况下确定帧dnn设置信息。根据另一实施例,dnn控制器1736可通过参考帧组dnn设置信息来确定关于第二dnn 300的结构的帧dnn设置信息。此外,可基于帧dnn更新信息来确定关于将在第二dnn 300中设置的滤波器核的参数的帧dnn设置信息。
[0363]
根据本公开的实施例,在操作2204之前,dnn控制器1736可针对除了第一帧2212之外的其余帧中的每一个帧获得帧dnn依赖性信息,其中,帧dnn依赖性信息指示当前帧是否将参考针对紧接在前的帧的帧dnn设置信息。此外,在操作2114之前,dnn控制器1736可基于帧dnn依赖性信息来确定是否通过参考针对紧接在前的帧的帧dnn设置信息来确定针对当前帧的帧dnn设置信息。因为相同或相似的帧dnn设置信息很可能将被用于连续的帧,所以可通过使用帧dnn依赖性信息来减小确定帧dnn设置信息所需的数据的大小。
[0364]
图23至图26示出根据本公开的实施例的用于确定针对视频或帧组的至少一条dnn设置信息的dnn更新信息的结构。
[0365]
图23至图25分别示出根据本公开的实施例的数据结构2320、数据结构2400和数据结构2500,其中,每一个数据结构包括与针对视频或帧组的dnn设置信息的更新相关的ai数据。根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据可被包括在视频参数集或帧组参数集中。可选地,根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据可以不被包括在视频参数集或帧组参数集中,而是可作为单独项被包括在视频头或帧组头中。
[0366]
根据本公开的实施例,根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据可被存储在图15的视频文件1500的元数据框1510中。可选地,根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据可与图像数据被分开发送。ai数据还可与图像数据同步并被应用于视频或帧组。
[0367]
当根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据被应用于视频时,与dnn设置信息的更新相关的ai数据可被应用于视频的所有帧。当根据数据结构2320、数据结构2400和数据结构2500中的每一个的ai数据被应用于帧组时,与dnn设置信息的更新相关的ai数据可被应用于帧组的所有帧。
[0368]
可根据图23至图25的数据结构2320、数据结构2400和数据结构2500来实现用于确定在图18的操作1802至操作1806、图19的操作1902至操作1906、图20的操作2002至操作2006以及图21的操作2102至操作2106中针对每一个视频而优化的一条或更多条视频dnn设
置信息的特性。此外,可根据图23至图25的数据结构2320、数据结构2400和数据结构2500来实现用于确定在图20的操作2008至操作2012和图21的操作2108至操作2118中针对每一个帧组而优化的一条或更多条帧组dnn设置信息的特性。
[0369]
图23示出根据本公开的实施例的包括ai目标数据和ai辅助数据的数据结构2300以及包括与dnn设置信息的更新相关的ai数据的数据结构2320。在图23中,根据dnn更新信息确定更新的dnn设置信息,而不参考默认dnn设置信息或针对比当前数据单元更高级别的数据单元的dnn设置信息。
[0370]
图23的数据结构2300是与数据结构2320相比更高级别的结构。数据结构2300包括ai_codec_info 2302,其中,ai_codec_info 2302是指示ai放大是否被应用于当前数据单元的ai目标数据。当ai_codec_info 2302指示ai放大被应用于当前数据单元时,数据结构2300包括表示通道信息的ai辅助数据ai_codec_applied_channel_info 2304、表示目标比特率信息的ai辅助数据target_bitrate_info 2306、表示分辨率信息的ai辅助数据res_info 2308、表示dnn相关信息的ai辅助数据ai_codec_dnn_info 2310和表示补充信息的ai辅助数据ai_codec_supplementary_info 2312。
[0371]
参照图23,ai_codec_dnn_info 2310可包括与根据图23的数据结构2320的dnn设置信息的更新相关的dnn更新信息。根据数据结构2320的dnn更新信息可包括ai_codec_dnn_update_flag 2322、ai_codec_num_dnn 2324、ai_codec_num_layers 2326、ai_codec_out_channel 2328、ai_codec_in_channel 2330、ai_codec_filter_size 2332、ai_codec_weights 2334和ai_codec_bias 2336。
[0372]
数据结构2320中的ai_codec_dnn_update_flag 2322是dnn更新许可信息。dnn更新许可信息指示是否更新一条或更多条dnn设置信息。
[0373]
当ai_codec_dnn_update_flag 2322指示不更新一条或更多条dnn设置信息时,ai_codec_num_dnn 2324和ai_codec_num_dnn 2324下方的一些dnn更新信息不被包括在图23的数据结构2320中。在当前数据单元是视频时,可从多条预先存储的默认dnn设置信息之中选择一条或更多条视频dnn设置信息。在当前数据单元是帧组时,可从所述一条或更多条视频dnn设置信息之中选择针对当前帧组的帧组dnn设置信息。在视频dnn设置信息或帧组dnn设置信息的选择时所参考的dnn索引信息可被包括在数据结构2320中。
[0374]
当ai_codec_dnn_update_flag 2322指示更新一条或更多条dnn设置信息时,dnn更新信息被包括在数据结构2320中。dnn更新信息指示与对用于设置第二dnn 300的所述一条或更多条dnn设置信息的更新有关的信息。
[0375]
例如,dnn更新信息可包括关于将被更新的dnn设置信息的数量的dnn数量信息。dnn更新信息还可包括关于dnn中的层的数量的层数信息。dnn更新信息还可包括指示层中的输入通道的数量的输入通道信息以及指示层中的输出通道的数量的输出通道信息。另外,dnn更新信息可包括指示层的滤波器核的大小的滤波器核大小信息、以及与表示滤波器核的参数的权重和偏置相关的信息。
[0376]
ai_codec_num_dnn 2324指示dnn数量信息。当ai_codec_dnn_update_flag 2322指示更新所述一条或更多条dnn设置信息时,ai_codec_num_dnn 2324可被包括在数据结构2320中。针对视频或帧组定义与由ai_codec_num_dnn 2324指示的数量相等的更新的dnn设置信息的数量。例如,当ai_codec_num_dnn 2324指示四(4)时,定义四条更新的dnn设置信
息。
[0377]
根据可针对多个更新的dnn中的每一个而单独定义的ai_codec_num_layers 2326、ai_codec_out_channel 2328、ai_codec_in_channel 2330、ai_codec_filter_size 2332、ai_codec_weights 2334和ai_codec_bias 2336来确定包括在更新的dnn设置信息中的关于层和滤波器核的多条信息。可选地,ai_codec_num_layers 2326、ai_codec_out_channel 2328、ai_codec_in_channel 2330和ai_codec_filter_size 2332的值可被设置为共同应用于多条更新的dnn设置信息。
[0378]
ai_codec_num_layers 2326可被定义用于更新的dnn设置信息。ai_codec_num_layers 2326是指示包括在更新的dnn设置信息中的层的数量的层数信息。例如,当ai_codec_num_layers 2326指示三(3)时,更新的dnn被设置为包括三层。
[0379]
可分别针对更新的dnn将多条ai_codec_num_layers 2326的数量定义为等于多个更新的dnn的数量。当更新的dnn的数量是四时,分别与四个更新的dnn相关的四条ai_codec_num_layers 2326可被包括在数据结构2320中。
[0380]
此外,可针对多个更新的dnn仅定义一条ai_codec_num_layers 2326。因此,可由所述一条ai_codec_num_layers 2326来确定更新的dnn中的每一个dnn中的层的数量。因此,可针对所有更新的dnn将更新的dnn中的层的数量确定为彼此相等。
[0381]
ai_codec_out_channel 2328和ai_codec_in_channel 2330可被定义用于更新的dnn中的每一个层。ai_codec_out_channel 2328指示关于每一个层中的输出通道的数量的输出通道信息。此外,ai_codec_in_channel 2330指示关于每一个层中的输入通道的数量的输入通道信息。例如,当ai_codec_out_channel 2328指示3时,每一个层中的输出通道的数量被设置为3。当ai_codec_in_channel 2330指示3时,每一个层中的输入通道的数量被设置为3。
[0382]
当在dnn中存在两个或更多个层时,可根据前一层的ai_codec_out_channel 2328来确定后续层的ai_codec_in_channel 2330。因此,对于除了dnn的第一层之外的其余层,可从数据结构2320中省略ai_codec_in_channel 2330。
[0383]
此外,当dnn中的输入通道的数量固定时,可从数据结构2320中省略第一层的ai_codec_in_channel 2330。例如,当dnn中的输入通道的数量固定为3时,从数据结构2320中省略第一层的ai_codec_in_channel 2330。
[0384]
类似地,当dnn中的输出通道的数量固定时,可从数据结构2320中省略dnn的最后一层的ai_codec_out_channel 2328。例如,当dnn中的输出通道的数量固定为3时,可从数据结构2320中省略最后一层(即,第三层)的ai_codec_out_channel 2328。
[0385]
ai_codec_out_channel 2328和ai_codec_in_channel 2330可被定义用于多个更新的dnn中的每一个更新的dnn中的每一个层。例如,当存在两个更新的dnn(即,第一更新的dnn和第二更新的dnn)时,针对第一更新的dnn的各个层的多条ai_codec_out_channel 2328和多条ai_codec_in_channel 2330以及针对第二更新的dnn的各个层的多条ai_codec_out_channel 2328和多条ai_codec_in_channel 2330可被包括在数据结构2320中。
[0386]
此外,当两个或更多个更新的dnn中的每一个包括相等数量的层时,针对一个更新的dnn中的层而分别定义的多条ai_codec_out_channel 2328和多条ai_codec_in_channel 2330被应用于另一更新的dnn中的相应层。因此,两个或更多个更新的dnn中的每一个可被
确定为具有相等数量的层,并且布置在两个或更多个更新的dnn中的相应位置处的层均被确定为具有相等数量的输入通道和相等数量的输出通道。例如,两个或更多个更新的dnn中的第一层可均被确定为具有相等数量的输入通道和相等数量的输出通道。类似地,两个或更多个更新的dnn中的第二层可均被确定为具有相等数量的输入通道和相等数量的输出通道。
[0387]
ai_codec_filter_size 2332可被定义用于更新的dnn的每一个层。ai_codec_filter_size 2332是指示层的滤波器核的大小的滤波器核大小信息。因为滤波器核的深度根据输入通道的数量被确定,所以ai_codec_filter_size 2332表示滤波器核的行和列的数量,并且可在ai_codec_filter_size 2332中省略滤波器核的深度。当滤波器核中的行的数量等于其中的列的数量时,ai_codec_filter_size 2332可仅包括滤波器核的行数和列数中的一个值。例如,当ai_codec_filter_size2332指示3时,滤波器核的大小被确定为3
×
3。当滤波器核中的行的数量不一定等于其中的列的数量时,滤波器核的行数和列数两者都可被用于指示滤波器核的大小。例如,当ai_codec_filter_size 2332指示3和5时,滤波器核的大小被确定为3
×
5(即,3行乘5列)。
[0388]
ai_codec_filter_size 2332可被定义用于多个更新的dnn中的每一个更新的dnn中的每一个层。例如,当存在两个更新的dnn(即,第一更新的dnn和第二更新的dnn)时,针对第一更新的dnn的各个层的多条ai_codec_filter_size 2332和针对第二更新的dnn的各个层的多条ai_codec_filter_size 2332可被包括在数据结构2320中。
[0389]
此外,当两个或更多个更新的dnn中的每一个包括相等数量的层,并且布置在两个或更多个更新的dnn中的相应位置处的层均具有相等数量的输入通道和相等数量的输出通道时,针对一个更新的dnn中的层而分别定义的多条ai_codec_filter_size 2332可被应用于另一更新的dnn中的相应层。因此,两个或更多个更新的dnn中的每一个可被确定为具有相等数量的层,并且布置在两个或更多个更新的dnn中的相应位置处的层均被确定为具有相等数量的输入通道、相等数量的输出通道和相等的滤波器核大小。例如,两个或更多个更新的dnn中的第一层可均被确定为具有相等的滤波器核大小。类似地,两个或更多个更新的dnn中的第二层可均被确定为具有相等的滤波器核大小。
[0390]
ai_codec_weights 2334被定义用于更新的dnn中的每一个层的滤波器核。ai_codec_weights 2334是指示包括在滤波器核中的权重的信息。更新的dnn中的每一个层包括等于输出通道的数量的多个滤波器核。因此,当一层具有两个输出通道时,该层包括两个滤波器核。
[0391]
滤波器核的大小由行数、列数和深度确定。因此,每一个滤波器核包括具有与(行数)
×
(列数)
×
(深度)相应的数量的参数。因为滤波器核的深度等于输入通道的数量,所以每一个滤波器核包括具有与(行数)
×
(列数)
×
(输入通道的数量)相应的数量的权重的矩阵。
[0392]
因此,包括在一层的所有滤波器核中的权重的数量等于(行数)
×
(列数)
×
(输入通道的数量)
×
(输出通道的数量)。因此,对于一个层,等于(行数)
×
(列数)
×
(输入通道的数量)
×
(输出通道的数量)的多条ai_codec_weights 2334的数量可被包括在数据结构2320中。例如,如在图13中所示出的,当行数和列数均为3,并且输入通道的数量和输出通道的数量均为4时,144(=3
×3×4×
4)条ai_codec_weights 2334可被包括在数据结构2320
中。
[0393]
ai_codec_weights 2334的比特大小可被限制。例如,ai_codec_weights 2334可被限制为指示值-1、0和1中的一个。因此,可由1比特至2比特表示ai_codec_weights 2334。然而,可以以各种方式确定ai_codec_weights 2334的范围,并且不限于此。
[0394]
ai_codec_bias 2336被定义用于更新的dnn中的每一个层的滤波器核。ai_codec_bias 2336是指示滤波器核的偏置的偏置信息。根据与滤波器核相应的偏置来调整滤波器核的输出值。例如,当滤波器核的输出值为3并且偏置为1时,滤波器核的输出值被调整为4(=3 1)。
[0395]
层包括与输出通道的数量相等的数量个滤波器核。因此,与层中的输出通道的数量相等的偏置的数量可被确定。例如,当层中的输出通道的数量是2时,针对该层的两条ai_codec_bias 2336被包括在数据结构2320中。
[0396]
在图23中所示出的连续的圆点表示重复相同的数据结构。因此,在关于第一dnn的第二层的信息下方出现的连续的圆点指示针对第一dnn的其他层的数据结构也与针对第一dnn的第一层和第二层的数据结构相同。此外,关于第二dnn的信息(ai_codec_num_layers 2326)下方的连续的圆点指示针对包括第二dnn的其他dnn的数据结构与针对第一dnn的数据结构相同。
[0397]
图23的数据结构2320仅是示例,并且根据本公开的实施例,数据结构2320可包括在图23中未示出但对于配置更新的dnn是必需的dnn更新信息。例如,关于针对输入通道的2d数据阵列的大小的输入通道大小信息以及关于针对输出通道的2d数据阵列的大小的输出通道大小信息可被包括在数据结构2320中。
[0398]
此外,关于针对输入通道的2d数据阵列的扩展的扩展信息可被包括在数据结构2320中。因此,如在图13中所示出的,根据扩展信息,可将零值元素添加到针对输入通道的2d数据阵列的顶部、下部、左侧和右侧。可选地,可在针对输入通道的2d数据阵列中的元素之间添加零值元素。可选地,可在针对输入通道的2d数据阵列中的元素之间添加插值元素。因此,针对输入通道的2d数据阵列的大小可根据扩展信息而增加。
[0399]
图24示出根据本公开的实施例的包括与dnn设置信息的更新相关的ai数据的数据结构2400。如同图23的数据结构2320,数据结构2400与图23的ai_codec_dnn_info 2310的子信息相关。
[0400]
在图24中,参考默认dnn的结构确定更新的dnn的结构。此外,根据dnn更新信息确定更新的dnn中的滤波器核的权重和偏置。在本公开中,dnn的结构表示关于除滤波器核的权重和偏置之外的层、输入通道和输出通道的属性以及滤波器核的大小的多条信息。例如,层的数量、层中的每一个层中的输入通道和输出通道的数量、以及每一个层的滤波器核的大小被包括在与dnn的结构相关的dnn设置信息中。
[0401]
在图24中示出的ai_codec_dnn_update_flag 2402和ai_codec_num_dnn 2404分别具有与图23的ai_codec_dnn_update_flag 2322和ai_codec_num_dnn 2324相同的功能。
[0402]
与图23的数据结构2320不同,图24的数据结构2400不包括ai_codec_num_layers 2326、ai_codec_out_channel 2328、ai_codec_in_channel 2330和ai_codec_filter_size 2332。作为替代,参考默认dnn的结构来确定更新的dnn的结构。因此,指示参考dnn索引信息的ai_codec_dnn_struct_reuse(ref)_idx 2406可被包括在数据结构2400中。参考dnn索引
信息指示在设置更新的dnn设置信息时所参考的默认dnn设置信息或视频dnn设置信息。在当前数据单元是视频时,参考dnn索引信息指示多条默认dnn设置信息中的一条默认dnn设置信息。在当前数据单元是帧组时,参考dnn索引信息可指示多条视频dnn设置信息中的一条视频dnn设置信息。根据本公开的实施例,在当前数据单元是帧组时,参考dnn索引信息可指示多条视频dnn设置信息和先前帧组的多条帧组dnn设置信息之中的一条dnn设置信息。
[0403]
当根据ai_codec_dnn_struct_reuse(ref)_idx 2406确定在生成更新的dnn设置信息时所参考的dnn设置信息时,根据包括在参考的dnn设置信息中的层的数量、层中的每一个层中的输入通道和输出通道的数量、以及每一个层的滤波器核的大小来确定更新的dnn设置信息中的层的数量、层中的每一个层中的输入通道和输出通道的数量、以及每一个层的滤波器核的大小。此外,可根据包括在参考的dnn设置信息中的针对输入通道的2d数据阵列的大小和针对输出通道的2d数据阵列的大小来确定包括在更新的dnn设置信息中的针对输入通道的2d数据阵列的大小和针对输出通道的2d数据阵列的大小。
[0404]
ai_codec_layer_update_flag 2408可被包括在数据结构2400中。ai_codec_layer_update_flag 2408是指示更新的dnn的层中的滤波器核参数是否与默认dnn的层中的滤波器核参数相同的层更新标志,或者是用于指示需要用新的值进行更新的标志。因为所参考的dnn设置信息中的层的数量等于更新的dnn中的层的数量,所以与更新的dnn中的层的数量相等的数量的多条ai_codec_layer_update_flag 2408被包括在数据结构2400中。当ai_codec_layer_update_flag 2408指示更新的dnn的层中的滤波器核参数需要用新的值进行更新时,指示更新的dnn中的滤波器核的权重的ai_codec_weights 2410和指示偏置的ai_codec_bias 2412被包括在数据结构2400中。因此,更新的dnn中的滤波器核的权重和偏置可与默认dnn中的滤波器核的权重和偏置不同。
[0405]
当ai_codec_layer_update_flag 2408指示更新的dnn的层中的滤波器核参数与默认dnn的层中的滤波器核参数相同时,可从数据结构2400中省略ai_codec_weights 2410和/或ai_codec_bias 2412,并且更新的dnn的层中的滤波器核参数被确定为与默认dnn的层中的滤波器核参数相同。
[0406]
根据本公开的实施例,滤波器核标识信息可被包括在数据结构2400中,其中,滤波器核标识信息指示更新的dnn的一个层中的一些滤波器核的参数是否与默认dnn的层中的滤波器核的参数相同。当滤波器核标识信息指示更新的dnn中的滤波器核的参数与默认dnn中的滤波器核的参数相同时,可从数据结构2400中省略ai_codec_weights 2410和/或ai_codec_bias 2412。可针对层的一个或更多个滤波器核分别定义滤波器核标识信息。因此,当层包括三个滤波器核时,针对所述三个滤波器核的三条滤波器核标识信息可被包括在数据结构2400中。
[0407]
根据本公开的实施例,当更新的dnn设置信息参考默认dnn设置信息时,ai_codec_weights 2410可指示默认dnn中的滤波器核的权重与更新的dnn中的滤波器核的权重之间的差,其中,权重被布置在滤波器核中的相同位置处。例如,针对更新的dnn的第一层中的第一滤波器核的第一权重的ai_codec_weights 2410可指示更新的dnn的第一层中的第一滤波器核的第一权重与默认dnn的第一层中的第一滤波器核的第一权重之间的差。
[0408]
类似地,当更新的dnn设置信息参考默认dnn设置信息时,ai_codec_bias 2412可指示分别在默认dnn和更新的dnn中的相同位置处的偏置之间的差,例如,针对更新的dnn的
第一层中的第一滤波器核的偏置的ai_codec_bias 2412可指示更新的dnn的第一层中的第一滤波器核的偏置与默认dnn的第一层中的第一滤波器核的偏置之间的差。
[0409]
在图24中示出的连续的圆点表示重复相同的数据结构。因此,在关于第一dnn的第二层的信息下方出现的连续的圆点指示针对第一dnn的其他层的数据结构也与针对第一dnn的第一层和第二层的数据结构相同。此外,关于第二dnn的信息(ai_codec_dnn_struct_reuse_idx 2406)下方的连续的圆点指示针对包括第二dnn的其他dnn的数据结构与针对第一dnn的数据结构相同。
[0410]
图25示出根据本公开的实施例的包括与dnn设置信息的更新相关的ai数据的数据结构2500。类似于图23的数据结构2320,数据结构2400与图23的ai_codec_dnn_info 2310的子信息相关。
[0411]
图25的数据结构2500包括默认dnn重用许可信息。根据默认dnn重用许可信息选择图23的更新的dnn确定方法和图24的更新的dnn确定方法中的一种。根据所选择的更新的dnn确定方法来确定更新的dnn设置信息。因此,在图25中,如参照图23所述,可根据dnn更新信息来确定更新的dnn设置信息,而不参考默认dnn设置信息。此外,在图25中,如参照图24所述的,可参考默认dnn的结构来确定更新的dnn设置信息。
[0412]
图25的ai_codec_dnn_update_flag 2502和ai_codec_num_dnn 2504分别具有与图23的ai_codec_dnn_update_flag 2322和ai_codec_num_dnn 2324相同的功能。
[0413]
与图23的数据结构2320和图24的数据结构2400不同,图25的数据结构2500包括作为默认dnn重用许可信息的ai_codec_dnn_struct_reuse_flag 2518。默认dnn重用许可信息指示是否参考默认dnn确定更新的dnn的结构。数据结构2500包括针对每一条更新的dnn设置信息的ai_codec_dnn_struct_reuse_flag 2518。
[0414]
当ai_codec_dnn_struct_reuse_flag 2518指示更新的dnn设置信息参考默认dnn的结构(是)时,如参照图24所述的,参考默认dnn的结构来确定更新的dnn设置信息。因此,参照图24描述的数据结构2400的特性可被应用于图25的数据结构2500。
[0415]
因此,可根据ai_codec_dnn_struct_reuse_idx 2520来确定由更新的dnn设置信息所参考的默认dnn设置信息、视频dnn设置信息或针对先前帧组的帧组dnn设置信息。此外,可根据ai_codec_layer_update_flag 2522确定更新的dnn的层是否与默认dnn的层相同。然后,可根据ai_codec_weights 2524和ai_codec_bias 2526分别确定滤波器核的权重和偏置。
[0416]
当ai_codec_dnn_struct_reuse_flag 2518指示更新的dnn设置信息不参考默认dnn的结构(即,ai_codec_dnn_struct_reuse_flag=否)时,如参照图23所述的,在不参考默认dnn的结构的情况下确定更新的dnn设置信息。因此,参照图23描述的数据结构2320的特性可被应用于图25的数据结构2500。
[0417]
因此,ai_codec_num_layers 2506、ai_codec_out_channel 2508、ai_codec_in_channel 2510和ai_codec_filter_size 2512被包括在数据结构2500中。因此,根据ai_codec_num_layers 2506、ai_codec_out_channel 2508、ai_codec_in_channel 2510和ai_codec_filter_size 2512分别确定更新的dnn中的层的数量、层中的每一个层中的输出通道和输入通道的数量、以及每一个层的滤波器核的大小。此外,根据ai_codec_weights 2514和ai_codec_bias 2516分别确定滤波器核的权重和偏置。
[0418]
在图25中所示出的连续的圆点表示重复相同的数据结构。因此,在关于第一dnn的第二层的信息下方出现的连续的圆点指示针对第一dnn的其他层的数据结构也与针对第一dnn的第一层和第二层的数据结构相同。此外,关于第二dnn的信息(ai_codec_dnn_struct_reuse_flag 2518)下方的连续的圆点指示针对包括第二dnn的其他dnn的数据结构与第一dnn的数据结构相同。
[0419]
图26示出根据本公开的实施例的实现包括与dnn设置信息的更新相关的ai数据的数据结构的ai编解码器高级语法2600。ai编解码器高级语法2600表示实现ai数据的数据结构的高级语法。高级语法是指包括通常在对特定数据单元进行编码时所应用的参数的语法。例如,高级语法包括应用于视频的视频参数集、应用于帧组的帧组参数集、应用于帧的帧参数集等。
[0420]
语法描述由连续的比特表示的比特流中的数据结构。因此,根据由语法描述的数据结构来解释比特流。图26的ai编解码器高级语法2600可被应用于视频或帧组。
[0421]
根据本公开的实施例,可以以sei消息的形式实现图26的ai编解码器高级语法2600。sei消息是与视频相关的补充信息的集合,并且与图像的编码数据分开被发送。针对帧组发送实现图26的ai编解码器高级语法2600的sei消息。
[0422]
在图26的表的左侧描述了与dnn设置信息的更新相关的语法元素的获取顺序和用于获取语法元素的条件。此外,图26的表的右侧示出如何从比特流中提取与dnn设置信息的更新相关的语法元素。此处,u(n)指示相应语法元素具有n比特的大小,其中,n是正整数。ue(v)指示相应语法元素通过指数哥伦布编码方案被编码。
[0423]
如在图26的表的左侧所示出的,ai编解码器高级语法2600开始于ai_codec_info,其中,ai_codec_info是指示是否将ai放大应用于当前数据单元的ai目标信息。ai_codec_info是具有1比特大小的语法元素,并且当ai_codec_info指示0时,ai编解码器高级语法2600结束。
[0424]
当ai_codec_info指示1时,ai编解码器高级语法2600包括作为dnn更新许可信息的ai_codec_dnn_update_flag。在图26的表中,ai_codec_dnn_update_flag是具有1比特大小的语法元素。当ai_codec_dnn_update_flag指示“0”时,ai编解码器高级语法2600包括指示默认dnn设置信息和视频dnn设置信息之一的ai_codec_dnn_index。此外,根据ai_codec_dnn_index确定针对当前数据单元的dnn设置信息。
[0425]
当ai_codec_dnn_update_flag指示“1”时,ai编解码器高级语法2600包括作为dnn数量信息的ai_codec_num_dnn。ai_codec_num_dnn是具有8比特大小的语法元素。根据ai_codec_num_dnn的多条更新的dnn设置信息的数量可在1至256的范围内。然而,根据本公开的实施例,ai_codec_num_dnn的比特大小可不同地改变。根据本公开的实施例,当仅需要一条更新的dnn设置信息时,可从ai编解码器高级语法2600中省略ai_codec_num_dnn。
[0426]
ai编解码器高级语法2600包括数条ai_codec_network_struct_reuse_flag[i],其中,ai_codec_network_struct_reuse_flag[i]是dnn重用许可信息,ai_codec_network_struct_reuse_flag[i]的数量等于由ai_codec_num_dnn所指示的更新的dnn的数量(例如,for(i=0;i《ai_codec_num_dnn;i ))。例如,当ai_codec_num_dnn指示4时,ai编解码器高级语法2600可包括ai_codec_network_struct_reuse_flag[0]、ai_codec_network_struct_reuse_flag[1]、ai_codec_network_struct_reuse_flag[2]和ai_codec_network_
struct_reuse_flag[3]。ai_codec_network_struct_reuse_flag[i]是具有1比特大小的语法元素。
[0427]
当ai_codec_network_struct_reuse_flag[i]指示1时,ai编解码器高级语法2600包括作为参考dnn索引信息的ai_codec_network_struct_reuse_idx[i]。ai_codec_network_struct_reuse_idx[i]是具有8比特大小的语法元素。根据由ai_codec_network_struct_reuse_idx[i]所指示的默认dnn设置信息来确定更新的dnn的结构。例如,可根据将被参考的默认dnn设置信息来确定更新的dnn中的层的数量(ai_codec_num_layers[i])、层中的每一个层中的输入通道的数量(ai_codec_in_channel[i][j])、每一个层中的输出通道的数量(ai_codec_out_channel[i][j])、每一个层中的滤波器核的大小(ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j])等。此外,可根据将被参考的默认dnn的结构来确定更新的dnn中的针对输入通道的2d数据阵列的大小和针对输出通道的2d数据阵列的大小。
[0428]
根据本公开的实施例,与图26不同,ai编解码器高级语法2600可以不包括ai_codec_network_struct_reuse_idx[i]。可根据分配给更新的dnn的标识号来确定在设置更新的dnn设置信息时将参考的默认dnn设置信息。例如,当第一更新的dnn具有与第一默认dnn相同的标识号时,可通过参考第一默认dnn设置信息来确定第一更新的dnn设置信息。类似地,当第二更新的dnn具有与第二默认dnn相同的标识号时,可通过参考第二默认dnn设置信息来确定第二更新的dnn设置信息。
[0429]
可获得指示当前层的偏置信息的数条ai_codec_bias[i][j][k],其中,ai_codec_bias[i][j][k]的数量等于由ai_codec_out_channel[i][j]所指示的输出通道的数量(for(k=0;k《ai_codec_out_channel[i][j];k ))。在图26的ai编解码器高级语法2600中,ai_codec_bias[i][j][k]通过指数哥伦布编码方案被编码。
[0430]
可获得指示与当前层中的滤波器核的参数有关的权重信息的数条ai_codec_weights[i][j][k][1][m],其中,ai_codec_weights[i][j][k][1][m]的数量等于与通过将由ai_codec_out_channel[i][j]所指示的输出通道的数量、由ai_codec_in_channel[i][j]所指示的输入通道的数量和由ai_codec_filter_width[i][j]*ai_codec_filter_height[i][j]所指示的滤波器核的大小相乘而获得的乘积相应的数量(for(k=0;k《ai_codec_out_channel[i][j];k ){for(l=0;l《ai_codec_in_channel[i][j];l ){for(m=0;m《ai_codec_filter_width[i][j]*ai_codec_filter_height[i][j];m )}})。在图26的ai编解码器高级语法2600中,ai_codec_weights[i][j][k][1][m]通过指数哥伦布编码方案被编码。
[0431]
根据本公开的实施例,ai_codec_weights[i][j][k][l][m]可指示默认dnn中的权重与更新的dnn中的权重之间的差。此外,ai_codec_bias[i][j][k]可指示默认dnn中的偏置与更新的dnn中的偏置之间的差。
[0432]
当ai_codec_network_struct_reuse_flag[i]指示“0”时,ai编解码器高级语法2600包括作为层数信息的数条ai_codec_num_layers[i],其中,ai_codec_num_layers[i]的数量等于根据ai_codec_num_dnn的更新的dnn的数量(for(i=0;i《ai_codec_num_dnn;i ))。例如,当ai_codec_num_dnn指示4时,ai编解码器高级语法2600可包括ai_codec_num_layers[0]、ai_codec_num_layers[1]、ai_codec_num_layers[2]和ai_codec_num_layers
[3]。
[0433]
ai_codec_num_layers[i]是具有8比特大小的语法元素。因此,可在1至256(即,28=256)的范围内确定根据ai_codec_num_layers[i]的层的数量。然而,根据本公开的实施例,ai_codec_num_layers[i]的比特大小可不同地改变。
[0434]
数条ai_codec_layer_update_flag被包括在ai编解码器高级语法2600中,其中,ai_codec_layer_update_flag的数量等于根据ai_codec_num_layers[i]的层的数量(for(j=0;j《ai_codec_num_layers[i];j ))。ai_codec_layer_update_flag是具有1比特大小的语法元素,并且可包括指示当前层是否被更新的层更新信息。当ai_codec_layer_update_flag指示“0”时,存储在ai放大器234中的默认层的dnn设置信息被应用于当前层。当ai_codec_layer_update_flag指示“1”时,ai_codec_in_channel[i][j](即,输入通道信息)、ai_codec_out_channel[i][j](即,输出通道信息)、ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j](它们是滤波器核大小信息)被包括在高级语法2600中。尽管图26示出ai_codec_layer_update_flag被包括在ai编解码器高级语法2600中,但根据本公开的实施例,ai_codec_layer_update_flag可以不被包括在ai编解码器高级语法2600中。当ai_codec_layer_update_flag不被包括在ai编解码器高级语法2600中时,ai_codec_in_channel[i][j]、ai_codec_out_channel[i][j]、ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j]可被配置为被包括在ai编解码器高级语法中,而无需对层更新信息进行解码。
[0435]
ai_codec_in_channel[i][j]、ai_codec_out_channel[i][j]、ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j]是语法元素,其中,每一个语法元素具有8比特大小。因此,可在1至256的范围内确定分别由ai_codec_in_channel[i][j]、ai_codec_out_channel[i][j]、ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j]所指示的值。然而,根据本公开的实施例,ai_codec_in_channel[i][j]、ai_codec_out_channel[i][j]、ai_codec_filter_width[i][j]和ai_codec_filter_height[i][j]的比特大小可不同地改变。
[0436]
此外,ai编解码器高级语法包括ai_codec_weights[i][j][k][1][m]和ai_codec_bias[i][j][k],其中,ai_codec_weights[i][j][k][1][m]指示其值被确定的滤波器核中所包括的参数的权重,ai_codec_bias[i][j][k]指示用于调整滤波器核的输出的偏置。
[0437]
图26的ai编解码器高级语法2600可被划分为第一语法2610、第二语法2620和第三语法2630。第一语法2610包括ai_codec_dnn_update_flag、ai_codec_num_dnn和ai_codec_dnn_struct_reuse_flag[i]。根据ai_codec_dnn_struct_reuse_flag[i]来确定用于确定更新的dnn设置信息的方法。当ai_codec_dnn_struct_reuse_flag[i]指示“1”时,根据第二语法2620的语法元素确定更新的dnn设置信息。当ai_codec_dnn_struct_reuse_flag[i]指示“0”时,根据第三语法2630的语法元素确定更新的dnn设置信息。
[0438]
通过将第一语法2610的ai_codec_dnn_struct_reuse_flag[i]设置为始终指示“1”并且排除第三语法2630,可根据图26的ai编解码器高级语法2600来实现图24的数据结构2400。此外,通过将第一语法2610的ai_codec_dnn_struct_reuse_flag[i]设置为始终指示“0”并且排除第二语法2620,可根据图26的ai编解码器高级语法2600来实现图23的数据结构2320。
[0439]
图26的ai编解码器高级语法2600仅为示例,并且根据本发明的实施例,可从ai编解码器高级语法2600排除图26的语法元素中的一些,或者图26中未示出的语法可被包括在ai编解码器高级语法2600中。此外,可在图26的ai编解码器高级语法2600中以不同的方式实现图23至图25中所示出的算法。
[0440]
图27示出根据本公开实施例的包括与针对帧组或帧的dnn设置信息的更新相关的ai数据的数据结构2700。根据数据结构2700的ai数据可被包括在帧组参数集或帧参数集中。可选地,根据数据结构2700的ai数据可以不被包括在帧组参数集或帧参数集中,而是可单独地被包括在帧组头或帧头中。可选地,根据数据结构2700的ai数据可与图像数据被分开发送。根据数据结构2700的ai数据也可与图像数据同步并被应用于帧组或帧。
[0441]
用于在图20的操作2008至操作2012和图21的操作2108至操作2118中确定针对每一个帧组优化的帧组dnn设置信息的特性可被实现于图27的数据结构2700。此外,用于在图22的操作2204至操作2208中确定针对每一个帧优化的dnn设置信息的特性可被应用于图27的数据结构2700。
[0442]
参照图27,ai_codec_info 2702是指示是否将ai放大应用于当前数据单元的ai目标信息。当ai_codec_info 2702指示ai放大不被应用于当前数据单元时,不执行针对当前数据单元的ai放大。
[0443]
当ai_codec_info 2702指示ai放大被应用于当前数据单元时,数据结构2700包括作为ai辅助数据依赖性信息的dependent_ai_condition_info 2704,其中,ai辅助数据依赖性信息指示针对前一数据单元的ai辅助数据是否被应用于当前数据单元。当dependent_ai_condition_info 2704指示针对前一数据单元的ai辅助数据被应用于当前数据单元时,不更新针对当前数据单元的dnn设置信息。当dependent_ai_condition_info 2704指示紧接在前的数据单元的ai辅助数据未被应用于当前数据单元时,作为dnn索引信息的ai_codec_dnn_index 2706被包括在数据结构2700中。
[0444]
ai_codec_dnn_index 2706指示多条候选dnn设置信息之中的应用于当前数据单元的dnn设置信息。例如,在当前数据单元是帧组时,ai_codec_dnn_index 2706可指示多条视频dnn设置信息之中的应用于当前帧组的dnn设置信息。可选地,在当前数据单元是帧组时,ai_codec_dnn_index 2706可指示一条或更多条视频dnn设置信息和针对先前帧组的一条或更多条帧组dnn设置信息之中的应用于当前帧组的dnn设置信息。可选地,在当前数据单元是帧时,ai_codec_dnn_index 2706可指示一条或更多条帧组dnn设置信息和先前帧的一条或更多条帧dnn设置信息之中的应用于当前帧的dnn设置信息。当存在一条候选dnn设置信息时,可从数据结构2700中省略ai_codec_dnn_index 2706。
[0445]
数据结构2700包括作为dnn更新许可信息的ai_codec_dnn_update_flag 2708。虽然参照图22至图24描述的dnn更新许可信息指示是否更新多个dnn,但在图27中示出的dnn更新许可信息指示是否更新由ai_codec_dnn_index 2706指示的更高级别的dnn的dnn设置信息。
[0446]
当ai_codec_dnn_update_flag 2708指示不更新更高级别的dnn的dnn设置信息时,dnn更新信息不被包括在数据结构2700中。因此,可根据由ai_codec_dnn_index 2706指示的更高级别的dnn的dnn设置信息来对帧中的第二图像进行ai放大。当ai_codec_dnn_update_flag 2708指示更新dnn设置信息时,可根据从dnn更新信息确定的更新的dnn设置
信息来对帧中的第二图像进行ai放大。
[0447]
参考更高级别的dnn的dnn设置信息来确定更新的dnn的结构。因此,根据更高级别的dnn的dnn设置信息来确定更新的dnn中的层的数量、输入通道的数量、输出通道的数量、滤波器核的大小等。
[0448]
ai_codec_layer_update_flag 2710可被包括在数据结构2700中。ai_codec_layer_update_flag 2710是指示是否需要利用新的值对更新的dnn的层进行更新而不参考更高级别的dnn的层的层更新标志。数条ai_codec_layer_update_flag 2710被包括在数据结构2700中,其中,ai_codec_layer_update_flag 2710的数量等于更新的dnn中的层的数量。
[0449]
当ai_codec_layer_update_flag 2710指示更新的dnn的层直接参考更高级别的dnn的层时,更新的dnn的层被确定为与更高级别的dnn的层相同。当ai_codec_layer_update_flag 2710指示利用新的值对更新的dnn的层进行更新而不参考更高级别的dnn的层时,与更高级别的dnn的层中的滤波器核的参数不同地确定更新的dnn的层中的滤波器核的参数。
[0450]
根据作为权重信息的ai_codec_weights 2712和作为偏置信息的ai_codec_bias 2714来确定更新的dnn中的滤波器核的权重和偏置。
[0451]
根据本公开的实施例,滤波器核标识信息可被包括在数据结构2700中,其中,滤波器核标识信息指示更新的dnn中的滤波器核的参数是否与更高级别的dnn中的滤波器核的参数相同。当滤波器核标识信息指示更新的dnn中的滤波器核的参数与更高级别的dnn中的滤波器核的参数相同时,可从数据结构2700中省略ai_codec_weights 2712和ai_codec_bias 2714。
[0452]
根据本公开的实施例,ai_codec_weights 2712可指示更高级别的dnn中的滤波器核的权重与更新的dnn中的滤波器核的权重之间的差,其中,权重可被布置在每一个滤波器核中的相同位置处。类似地,ai_codec_bias 2714可指示分别在更高级别的dnn和更新的dnn中的相同位置处的偏置之间的差。
[0453]
在图27中所示出的连续的圆点表示可重复相同的数据结构。因此,关于第二层的信息下方的连续的圆点指示其他层的数据结构也可与第一层和第二层的数据结构相同。
[0454]
图28示出根据本公开的实施例的实现图27的包括与dnn设置信息的更新相关的ai数据的数据结构2700的ai编解码器高级语法2800。图28的ai编解码器高级语法2800可被应用于帧组或帧。
[0455]
在图28的表的左侧描述了与dnn设置信息的更新相关的语法元素的获取顺序和用于获取语法元素的条件。此外,图28的表的右侧示出如何从比特流中提取与dnn设置信息的更新相关的语法元素。
[0456]
如图28的表的左侧所示出的,ai编解码器高级语法2800包括ai_codec_info,其中,ai_codec_info是指示是否将ai放大应用于当前数据单元的ai目标信息。ai_codec_info是具有1比特大小的语法元素,并且当ai_codec_info指示“0”时,ai编解码器高级语法2800结束。
[0457]
当ai_codec_info指示“1”时,ai编解码器高级语法2800包括作为ai辅助数据依赖性信息的dependent_ai_condition_info,其中,ai辅助数据依赖性信息指示针对前一数据
单元的ai辅助数据是否被应用于当前数据单元。dependent_ai_condition_info是具有1比特大小的语法元素。当dependent_ai_condition_info指示“1”时,ai编解码器高级语法2800结束。
[0458]
当dependent_ai_condition_info指示“0”时,ai编解码器高级语法2800包括作为dnn索引信息的ai_codec_dnn_index。ai_codec_dnn_index表示由指数哥伦布编码方案编码的语法元素。
[0459]
ai编解码器高级语法2800包括作为dnn更新许可信息的ai_codec_dnn_update_flag。ai_codec_dnn_update_flag表示具有1比特大小的语法元素。当ai_codec_dnn_update_flag指示“0”时,参考由ai_codec_dnn_index指示的更高级别的dnn设置信息来确定帧dnn设置信息。
[0460]
当ai_codec_dnn_update_flag指示“1”时,作为偏置信息的ai_codec_bias[i][j][k]和作为权重信息的ai_codec_weights[i][j][k][1][m]被包括在ai编解码器高级语法2800中。根据本公开的实施例,ai_codec_weights[i][j][k][l][m]可指示更高级别的dnn中的滤波器核的权重与更新的dnn中的滤波器核的权重之间的差,权重被布置在滤波器核中的相同位置处。类似地,ai_codec_bias[i][j][k]可指示分别在更高级别的dnn和更新的dnn中的相同位置处的偏置之间的差。
[0461]
此外,ai编解码器高级语法2800可包括滤波器核标识信息,其中,滤波器核标识信息指示更新的dnn中的滤波器核的参数是否与更高级别的dnn中的滤波器核的参数相同。当滤波器核标识信息指示更新的dnn中的滤波器核的参数与更高级别的dnn中的滤波器核的参数相同时,可从ai编解码器高级语法2800中省略ai_codec_weights[i][j][k][1][m]和/或ai_codec_bias[i][j][k]。
[0462]
图28的ai编解码器高级语法2800仅为示例,并且根据本发明的实施例,可从ai编解码器高级语法2800排除图28的语法元素中的一些,或者图28中未示出的语法可被包括到ai编解码器高级语法2800。此外,可在图28的ai编解码器高级语法2800中以不同的方式实现图27中示出的算法。
[0463]
可以以sei消息的形式实现图28的ai编解码器高级语法2800。针对帧传输实现图28的ai编解码器高级语法2800的sei消息。
[0464]
根据本公开的实施例,在图28中示出的ai_codec_info和dependent_ai_condition_info可被包括在除了ai编解码器高级语法2800之外的语法中。在这种情况下,当包括在其他语法中的ai_codec_info和dependent_ai_condition_info两者都指示“0”时,ai编解码器高级语法2800可被设置为被激活。
[0465]
图29是根据本公开的实施例的由ai解码设备执行的图像解码方法的流程图。
[0466]
获得指示是否更新一条或更多条dnn设置信息的dnn更新许可信息(操作2910)。
[0467]
当dnn更新许可信息指示更新一条或更多条dnn设置信息时,获得用于确定一条或更多条更新的dnn设置信息的dnn更新信息(操作2920)。
[0468]
当dnn更新许可信息指示不更新一条或更多条dnn设置信息时,不获得dnn更新信息。因此,可通过根据一条或更多条默认dnn设置信息对第二图像执行ai放大来生成第三图像。
[0469]
根据本公开的实施例,dnn更新信息可包括指示一条或更多条更新的dnn设置信息
的数量的dnn数量信息。此外,dnn更新信息可包括以下信息中的至少一个:指示包括在dnn中的层的数量的层数信息、指示层中的输入通道的数量的输入通道信息、指示层中的输出通道的数量的输出通道信息、指示层的滤波器核的大小的滤波器核大小信息、指示滤波器核的权重的权重信息、或者指示用于调整滤波器核的输出的偏置的偏置信息。
[0470]
根据本公开的实施例,dnn更新信息可包括默认dnn重用许可信息,其中,默认dnn重用许可信息指示关于默认dnn的结构的信息是否被重新用于更新的dnn设置信息。当默认dnn重用许可信息指示关于默认dnn的结构的信息将被重新用于更新的dnn设置信息时,dnn更新信息可包括指示默认dnn的索引的参考dnn索引信息。此外,dnn更新信息可包括指示滤波器核的权重的权重信息或者指示用于调整滤波器核的输出的偏置的偏置信息中的至少一个。权重信息可包括分别在默认dnn和更新的dnn中的权重之间的差,并且偏置信息可指示分别在默认dnn和更新的dnn中的偏置之间的差。
[0471]
根据dnn更新信息获得一条或更多条更新的dnn设置信息(操作2930)。
[0472]
根据本公开的实施例,根据dnn数量信息来确定更新的dnn设置信息的数量。
[0473]
根据本公开的实施例,当默认dnn重用许可信息指示关于默认dnn的结构的信息被重新用于更新的dnn设置信息时,可根据由参考dnn索引信息指示的关于默认dnn的结构的信息和dnn更新信息来确定一条或更多条更新的dnn设置信息。例如,可根据由参考dnn索引信息指示的默认dnn中的层的数量、层中的每一个层的输入通道的数量、每一个层中的输出通道的数量、和每一个层的滤波器核的大小来确定更新的dnn设置信息中的层的数量、每一个层中的输入通道的数量、每一个层中的输出通道的数量、和每一个层的滤波器核的大小。此外,可根据dnn更新信息确定更新的dnn设置信息中的滤波器核的权重和偏置。
[0474]
根据本公开的实施例,可针对包括多个帧的帧组执行操作2910至操作2930。可选地,可针对视频执行操作2910至操作2930。
[0475]
通过根据所述一条或更多条更新的dnn设置信息对第二图像执行ai放大来获得第三图像(操作2940)。
[0476]
根据本公开的实施例,可针对帧执行操作2940。根据针对帧而获得的dnn索引信息,可从所述一条或更多条更新的dnn设置信息之中确定针对帧的更新的dnn设置信息。另外,可通过根据更新的dnn设置信息对帧中的第二图像执行ai放大来获得帧中的第三图像。
[0477]
根据本公开的实施例,可获得次级dnn更新许可信息,其中,次级dnn更新许可信息指示是否将执行针对帧而确定的更新的dnn设置信息的次级更新。当次级dnn更新许可信息指示更新的dnn设置信息的次级更新时,可获得次级dnn更新信息。此外,可通过根据从次级dnn更新信息确定的次级更新的dnn设置信息对帧中的第二图像执行ai放大来获得帧中的第三图像。
[0478]
根据本公开的实施例,可省略根据操作2910至操作2930的一条或更多条更新的dnn设置信息的确定。相反,可获得针对视频或帧组而优化的一条或更多条默认dnn设置信息。
[0479]
在图29中示出的图像解码方法2900仅是示例,并且与参照图14至图28描述的dnn设置信息的更新相关联的实施例可被应用于图29的图像解码方法2900。
[0480]
图30是根据本公开的实施例的图像解码设备3000的配置的框图。
[0481]
图像解码设备3000可包括通信器3010、处理器3020和存储器3030。
[0482]
通信器3010可根据处理器3020的控制从外部设备(例如,服务器)接收ai数据和图像数据。
[0483]
处理器3020可控制图像解码设备3000的所有操作。根据本公开的实施例,处理器3020可执行存储在存储器3030中的一个或更多个程序。处理器3020还可执行第一解码器1732和ai放大器1734(图17中所示)的功能。处理器3020可包括一个或更多个处理器。
[0484]
根据本公开的实施例,处理器3020可包括图形处理器3022和ai专用处理器3024。此外,处理器3020可以以包含图形处理器3022或ai专用处理器3024中的至少一个的片上系统(soc)的形式被实现。处理器3022控制图像解码设备3000的所有操作和图像解码设备3000的内部组件之间的信号流并对数据进行处理。
[0485]
图形处理器3022是具有专门用于对图像进行解码和后处理的设计的处理器。因此,图形处理器3022可执行对通过通信器3010接收的或从图像解码设备3000的存储器检索的图像数据进行处理所需的计算。因此,可由图形处理器3022高效地执行第一解码器1732的低分辨率图像重建功能。ai专用处理器3024是具有专门用于ai计算的设计的处理器。因此,ai专用处理器3024可有效地执行ai放大器1734执行ai放大低分辨率图像的功能所必需的计算。具体地,ai专用处理器3024可执行dnn控制器1736更新dnn并确定dnn设置信息所必需的计算。另外,ai专用处理器3024可执行图像处理器1738对低分辨率图像进行ai放大所必需的计算。
[0486]
经由通信器3010输入到图像解码设备3000的图像数据和ai数据被处理器3020处理。图形处理器3022可对图像数据进行解码以生成低分辨率图像。ai专用处理器3024然后可对由图形处理器3022生成的低分辨率图像执行ai放大。因此,ai专用处理器3024可通过对低分辨率图像进行ai放大来生成高分辨率图像。此外,ai放大所必需的放大dnn可被ai专用处理器3024设置。
[0487]
尽管已经描述了处理器3020包括一个图形处理器3022,但根据本公开的实施例,处理器3020可包括两个或更多个图形处理器3022。此外,尽管已经描述了处理器3020包括一个ai专用处理器3024,但根据本公开的实施例,处理器3020可包括两个或更多个ai专用处理器3024。另外,处理器3020可包括一个或更多个通用处理器。可根据一个或更多个通用处理器的控制来执行ai放大所需的另外的处理。ai专用处理器3024可被实现为硬件现场可编程门阵列(fpga)。
[0488]
根据本公开的实施例,存储器3030可存储用于驱动和控制图像解码设备3000的各种数据、程序或应用。存储在存储器3030中的程序可包括一个或更多个指令。此外,存储在存储器3030中的程序(一个或更多个指令)或应用可被处理器3020执行。存储器3030可存储源自通信器3010和处理器3020的数据。此外,存储器3030可将处理器3020所请求的数据发送到处理器3020。
[0489]
根据本公开的实施例,图像解码设备3000可执行参照图2描述的ai解码设备200的功能和参照图29描述的图像解码方法的操作中的至少一个。
[0490]
可通过图30的图像解码设备3000实现图29的图像解码方法2900。与参照图17至图28描述的dnn设置信息的更新相关联的技术特性可被应用于由图30的图像解码设备3000执行的图29的图像解码方法2900。
[0491]
根据本公开的各种实施例的由图30的图像解码设备3000执行的图29的图像解码
方法2900可被编写为可在计算机上执行的程序。此外,可由图像解码设备3000解释参照图23至图28描述的数据结构2320、数据结构2400、数据结构2500、数据结构2600、数据结构2700和数据结构2800,因此,用于ai放大的dnn设置信息可被确定。
[0492]
另外,上述本公开的实施例可被编写为可被存储在存储介质中的计算机可执行程序或指令。
[0493]
存储介质可连续地存储计算机可执行程序或指令,或者临时存储计算机可执行程序或指令以供执行或下载。此外,存储介质可以是组合了单件硬件或多件硬件的各种记录介质或存储介质中的任何一种,并且存储介质不限于直接连接到计算机系统的介质,而是可被分布在网络上。这里,存储介质可包括表示可存储可由处理器读取的信息或数据的任何类型的物理存储器的一个或更多个计算机可读存储介质。术语“计算机可读介质”应当被理解为包括有形项并且排除载波和瞬态信号(即,非暂时性的)。存储介质的示例包括被配置为存储程序指令的磁介质(诸如,硬盘、软盘和磁带)、光学记录介质(诸如,cd-rom和dvd)、磁光介质(诸如,光软盘)以及rom、ram和闪存。介质的其他示例包括由分发应用的应用商店或由提供或分发其他各种类型的软件的网站、服务器等管理的记录介质和存储介质。
[0494]
此外,可经由软件模块来实现与上述dnn相关的模型。当dnn模型经由软件模块(例如,包括指令的程序模块)被实现时,dnn模型可被存储在计算机可读记录介质中。
[0495]
此外,dnn模型可通过以硬件芯片的形式被集成而成为上述ai解码设备200或ai编码设备600的一部分。例如,dnn模型可以以用于ai的专用硬件芯片的形式被制造,或者可被制造为现有通用处理器(例如,cpu或应用处理器)或图形专用处理器(例如,gpu)的一部分。
[0496]
此外,dnn模型可以以可下载软件的形式被提供。计算机程序产品可包括通过制造商或电子市场电子分发的软件程序形式的产品(例如,可下载的应用)。对于电子分发,软件程序的至少一部分可被存储在存储介质中或者可被临时生成。在这种情况下,存储介质可以是制造商或电子市场的服务器、或者中继服务器的存储介质。
[0497]
根据本公开的实施例,提供了一种通过使用用于图像放大的更新的dnn设置信息来对图像进行解码的方法。可通过使用根据针对图像优化的dnn设置信息而配置的dnn来改善放大图像的质量。
[0498]
虽然上面已经示出和描述了本公开的一个或更多个实施例,但本领域普通技术人员将理解,在不脱离由所附权利要求限定的精神和范围的情况下,可在其中进行形式和细节上的各种改变。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献