掌桥专利:专业的专利平台
掌桥专利
首页

HDR视频的基于云的编码中的工作负载分配与处理

文献发布时间:2023-06-19 19:28:50



相关申请的交叉引用

本申请要求都是在2020年7月9日提交的美国专利申请第63/049,673号和欧洲专利申请EP20184883.5的优先权权益,其中每一个通过引用整体并入本文。

技术领域

本公开总体涉及图像。更具体地,本发明的实施例涉及高动态范围(HDR)视频的基于云的编码中的工作负载分配和处理。

背景技术

如本文所使用的,术语‘动态范围’(DR)可以涉及人类视觉系统(HVS)感知图像中的强度范围(例如,亮度、明亮度)的能力,例如,从最暗的灰色(黑色)到最亮的白色(高亮)。从这个意义上说,DR与‘场景参考’强度有关。DR还可以涉及显示设备充分地或近似地呈现特定宽度的强度范围的能力。从这个意义上说,DR与“显示参考”强度有关。除非在本说明书中的任何地方明确规定特定含义具有特定意义,否则应推断该术语可在任一含义中使用,例如可互换地使用。

如本文所使用的,术语高动态范围(HDR)涉及跨越人类视觉系统(HVS)的14-15个数量级的DR宽度。在实践中,相对于HDR,人类可以同时感知强度范围的扩展宽度的DR可能会被某种程度上截断。如本文所使用的,术语视觉动态范围(VDR)或增强动态范围(EDR)可以单独地或可互换地涉及场景或图像内可由包括眼睛运动的人类视觉系统(HVS)感知的DR,从而允许跨场景或图像的一些光适应变化。如本文所使用的,VDR可以涉及跨越5到6个数量级的DR。因此,虽然相对于真正场景参考的HDR、VDR或EDR可能有些窄,但仍然表示较宽的DR宽度,并且也可被称为HDR。

实际上,图像包括一个或多个颜色分量(例如,亮度Y和色度Cb和Cr),其中每个颜色分量由每像素n比特的精度(例如,n=8)表示。例如,使用伽马亮度编码,其中n≤8(例如,彩色24位JPEG图像)被认为是标准动态范围的图像,而n≥10的图像可以被认为是增强动态范围的图像。HDR图像也可以使用高精度(例如,16位)浮点格式来存储和分发,例如由工业光魔公司开发的OpenEXR文件格式。

大多数消费者桌面显示器目前支持200到300cd/m

如本文所使用的,术语“前向整形(forward reshaping)”表示数字图像从其原始比特深度和原始码字分布或表示(例如,伽马、PQ、HLG等)到相同或不同比特深度和不同码字分布或表示的图像的样本到样本或码字到码字的映射过程。整形允许在固定比特率下改善可压缩性或改善图像质量。作为示例而非限制,可以将整形应用于10位或12位PQ编码的HDR视频,以提高10位视频编码架构中的编码效率。在接收器中,在解压缩接收到的信号(其可以或可以不被整形)之后,接收器可以应用“反向(或后向)整形函数”来将信号恢复到其原始码字分布和/或实现更高的动态范围。

在许多视频分发场景中,HDR视频可能是在通常被称为“云计算服务器”的多处理器环境中编码的。在这样的环境中,在计算的简易性、计算节点之间的工作负载均衡和视频质量之间的权衡可能迫使与整形相关的元数据在逐帧的基础上被更新,这可能导致不可接受的开销,特别是在以低比特率传输视频时。如本文的发明人所理解的,希望用于工作负载分配和基于节点的处理的改进技术,以提高基于云的环境中的编码视频的质量,同时最小化整形相关元数据的开销。

本节所描述的方法是可以采用的方法,但不一定是以前设想或采用的方法。因此,除非另有说明,否则不应假定本节中描述的任何方法仅因其包含在本节中而有资格作为现有技术。同样,除非另有说明,否则不应基于本章节认为在任何现有技术中已经认识到针对一种或多种办法识别的问题。

附图说明

本发明的实施例在附图的图示中以示例而非限制的方式示出,其中相似的附图标记指的是相似的元件,并且其中:

图1A描绘了使用根据现有技术的整形函数的用于HDR数据的示例单层编码器;

图1B描绘了根据现有技术的对应于图1A的编码器的示例HDR解码器;

图2描绘了根据实施例的HDR视频的基于云的编码的示例架构;

图3A描绘了根据实施例的场景至片段分派的示例过程;

图3B描绘了根据实施例的场景至片段分派过程内的改进分派过程的示例;以及

图4描绘了根据本发明的实施例的用于使用整形的基于场景的编码的示例编码器。

具体实施方式

本文描述了HDR视频的基于云的视频编码中的工作负载分配和基于节点的处理的方法。在下面的描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。然而,要明白的是,本发明可以在没有这些具体细节的情况下实施。在其他情况下,没有详尽详细地描述公知的结构和设备以避免不必要地遮挡、遮蔽或混淆本发明。

概要

本文描述的示例实施例涉及用于HDR图像的基于云的整形和编码。在一个实施例中,在用于编码HDR视频的基于云的系统中,节点被布置为调度器节点,该调度器节点将输入视频分割成场景并生成场景至片段分配以供其他计算节点使用。调度器节点中的处理器接收场景序列,其中每个场景包括一个或多个视频帧,然后处理器:

接收场景序列,其中每个场景包括一个或多个视频帧;以及

执行一个或多个分派迭代以生成最佳输出分派,其中执行所述一个或多个分派迭代包括:

对于所述一个或多个分派迭代中的迭代:

基于针对所述分派迭代的随机种子选择,生成所述场景序列至M个计算节点的初始随机分派(305),其中M>1;

基于所述初始随机分派执行改进分派步骤(310),以生成所述场景序列至M个计算节点的改进分派以及改进分派成本;以及

基于所述改进分派和改进分派成本来更新最佳分派成本和最佳输出分派(315)。

在另一个实施例中,对于M个计算节点当中的节点,该节点中的处理器根据场景至片段分派来访问被分派给该节点的场景,该场景包括高动态范围(HDR)帧序列和对应的标准动态范围(SDR)帧序列,并且使用基于场景的前向整形函数和基于场景的后向整形函数来生成输出比特流和对应的整形元数据。

示例HDR编码系统

图1A和图1B根据现有技术示出了使用图像整形的示例单层后向兼容编解码器框架。更具体地,图1A示出了可以用上游视频编码器中的一个或多个计算处理器实现的示例编码器架构。图1B示出了还可以在一个或多个下游视频解码器中用一个或多个计算处理器实现的示例解码器架构。

在该框架下,给定参考HDR内容(120)和对应的参考SDR内容(即,表示与HDR内容相同的图像、但经颜色分级并以标准动态范围表示的内容),经整形的HDR内容(134)由实现编码器架构的上游编码设备编码并且作为SDR内容在编码视频信号(144)的单层中传输。接收到的SDR内容由实现解码器架构的下游解码设备在视频信号的单层中接收和解码。后向整形元数据(152)也与经整形的内容一起被编码和在视频信号中传输,使得HDR显示设备可以基于(经整形的)SDR内容和后向整形元数据来重构HDR内容。不失一般性地,在一些实施例中,如在非向后兼容系统中一样,经整形的SDR内容本身可能不可观看,但必须与将生成可观看的SDR或HDR内容的后向整形功能结合观看。在支持后向兼容性的其他实施例中,传统SDR解码器仍然可以在不采用后向整形函数的情况下回放接收到的SDR内容。

如图1A所示,给定HDR图像(120)和目标动态范围,在步骤130中生成前向整形函数(132)之后;给定前向整形函数,将前向整形映射步骤(132)应用于HDR图像(120)以生成经整形的SDR基础层(134)。压缩块(142)(例如,根据诸如AVC、HEVC、AV1等的任何已知视频编码算法实现的编码器)在视频信号的单层(144)中压缩/编码SDR图像(134)。此外,后向整形函数生成器(150)可以生成后向整形函数,该后向整形函数可以作为元数据(152)被发送到解码器。在一些实施例中,元数据(152)可以表示前向整形函数(130),因此,将由解码器来生成后向整形函数(未示出)。

表示/指定最佳后向整形函数的后向整形元数据的示例可以包括但不一定仅限于以下任何一个:逆色调映射函数、逆亮度映射函数、逆色度映射函数、查找表(LUT)、多项式、逆显示管理系数/参数等。在各种实施例中,亮度后向整形函数和色度后向整形函数可以联合地或单独地导出/优化,可以使用各种技术来导出,例如但不限于本公开稍后描述的。

由后向整形函数生成器基于经整形的SDR图像和目标HDR图像生成的后向整形元数据可以作为视频信号144的一部分被多路复用,例如作为补充增强信息(SEI)消息传递。

在一些实施例中,后向整形元数据(152)作为总体图像元数据的一部分被携带在视频信号中,其与视频信号中编码有SDR图像的单层分开地被携带在视频信号中。例如,后向整形元数据(152)可以被编码在编码比特流中的分量流中,该分量流可以或可以不与(编码比特流的)编码有SDR图像(134)的单层分离。

因此,可以在编码器侧生成或预先生成后向整形元数据(152),以利用在编码器侧可用的强大的计算资源和离线编码流(包括但不限于内容自适应多遍历、前瞻操作、逆亮度映射、逆色度映射、基于CDF的直方图近似和/或传输等)。

图1A的编码器架构可用于避免将目标HDR图像(120)直接编码为视频信号中的经编码/压缩的HDR图像;相反,视频信号中的后向整形元数据(152)可用于使下游解码设备能够将SDR图像(134)(其被编码在视频信号中)后向整形为与参考HDR图像(120)相同或密切/最佳地近似的重构图像。

在一些实施例中,如图1B所示,单层中编码有经整形的SDR图像的视频信号和作为总体图像元数据的一部分的后向整形元数据在编解码器框架的解码器侧被接收作为收入。解压缩块(154)将视频信号的单层(144)中的压缩视频数据解压缩/解码成解码的SDR图像(156)。解压缩154典型地对应于压缩142的逆。解码的SDR图像(156)可以与SDR图像(134)相同,受可能针对SDR显示设备优化了的压缩块(142)和解压缩块(154)中的量化误差的影响。在后向兼容系统中,解码的SDR图像(156)可以在输出SDR视频信号中输出(例如,通过HDMI接口、通过视频链路等),以在SDR显示设备上呈现。

可选地、备选地或另外地,在同一或另一实施例中,后向整形块158从输入视频信号中提取后向(或前向)整形元数据(152),基于整形元数据(152)来构造后向整形函数,并且基于最佳后向整形函数对解码的SDR图像(156)执行后向整形操作以生成经后向整形的图像(160)(或重构的HDR图像)。在一些实施例中,经后向整形的图像表示与参考HDR图像(120)相同或密切/最佳地近似的制作质量或接近制作质量的HDR图像。经后向整形的图像(160)可以在输出HDR视频信号中输出(例如,通过HDMI接口、通过视频链路等),以在HDR显示设备上呈现。

在一些实施例中,作为在HDR显示设备上呈现经后向整形的图像(160)的HDR图像呈现操作的一部分,可以对经后向整形的图像(160)执行特定于HDR显示设备的显示管理操作。

基于云的编码

现有的整形技术可以是基于帧的,即,新的整形元数据随每个新的帧一起传输,或者是基于场景的,即,新的整形元数据与每个新的场景一起传输。如本文所使用的,视频序列(帧/图像序列)的“场景”这一术语可以涉及视频序列中共享相似亮度、颜色和动态范围特性的一系列连续帧。基于场景的方法在有权访问整个场景的视频工作流管道中工作得很好;然而,内容提供商使用基于云的多处理并不少见,其中在将视频流划分为片段后,每个片段由云中的单个计算节点独立处理。如本文所使用的,术语“片段”表示视频序列中的一系列连续帧。片段可以是场景的一部分,也可以包括一个或多个场景。因此,场景的处理可以跨多个处理器来分割。

如参考文献[1]中所讨论的,在某些基于云的应用中,在某些质量约束下,基于片段的处理可能需要在逐帧的基础上生成整形元数据,从而产生不希望的开销。这在非常低的比特率应用(例如,低于1Mbit/s)中可能是一个问题。图2描绘了一种新颖的、基于场景的分布式架构的示例架构,该架构允许降低整形元数据的数据速率,但不会损害解码视频的质量。

如图2所示,所提出的架构包括两个阶段:a)调度器阶段(205),典型地而非限制地,在将场景分配到片段中的单个计算节点上实现;以及b)编码阶段(210),其中云中的每个节点对片段序列进行编码。

给定用于内容分发的视频源(202)(通常被称为夹层文件),第一阶段节点获取视频元数据(例如,从XML文件)并且:(a)在步骤215中,它确定场景边界;以及(b)在步骤220中,它决定每个工作者节点的场景至片段分派列表。场景边界确定的主要目标是确保在一个场景内的正常回放期间没有显著的亮度或颜色变化,包括淡入、淡出和溶解。(视频编辑中的溶解指的是从一个图像到另一个图像的平滑过渡。在空白(或黑色)图像到另一图像之间的溶解也称为淡入或淡出。)场景至片段分派单元(220)的目标是确保一个场景不会在两个不同的计算节点中被分割和编码,否则可能导致片段边界附近的突然变化。此外,分派任务应争取跨所有计算节点(210)的均匀工作负载。

在第二阶段(210),每个计算节点从阶段一接收其自己的场景至片段列表(S2S列表)(230),并从输入视频(202)接收对应片段的它自己的部分夹层(225)。每个节点并行地对给它分派的片段进行编码并输出编码比特流。接下来将讨论每个处理任务的细节。

调度器节点

取决于每个节点中工作负载分布的要求,有两种感兴趣的主要情景。在一个实施例中,片段可以具有非均匀长度,这允许不同节点中的非均匀工作负载。这是为基于场景的解决方案量身定制的,其中场景不能被分割为在多于一个节点中编码。在另一实施例中,片段具有固定长度,从而在所有节点上强制实施均匀的工作负载。在所提出的调度器和工作节点模型下,所提出的架构可以处理这两种情景。

在片段长度不均匀的情景下,每个工作者节点可能接收不同工作负载用于处理。为了启用基于场景的编码,调度器节点读取(从夹层中提取的)XML文件并确定场景边界,特别是如何分割或合并淡入/淡出中的帧,以及将场景溶解到新的场景切割边界中。在这些新定义的场景中,调度器确定哪个场景应该由哪个节点编码。这个过程的输出将是场景至片段(S2S)列表(230)。主要目标是尽可能均匀地分派每个节点中的帧数量。在一个实施例中,非限制性地,在该阶段中测量均匀性(uniformity)的度量是在每个节点中分配的帧数量的标准差。较低的标准差意味着每个节点中的工作负载更加均匀。在一个实施例中,S2S列表可以被导出作为在不中断的场景处理约束下跨所有节点的最佳均匀负载的优化问题的输出。

场景切割可以在视频源(202)的XML文件中定义,但通常这样的元数据定义颜色分级边界。例如,为了便于颜色分级,可以在溶解场景期间插入场景切割标志,使得在回放期间,显示管理过程不会扭曲颜色。然而,这些XML数据不会考虑基线数据已被整形,并且整形可能会影响溶解内的最终外观。在一个实施例中,为了避免这样的问题,可以将溶解划分为每个场景的多个单帧,以允许沿时间域的缓慢过渡。请注意,此方法将在这些特殊过渡效果期间增加与整形相关的元数据的比特率。同样的技术也可以应用于淡入和淡出过渡。

当XML文件不可用时,调度器将需要使用本领域中已知的任何已知场景切割检测技术来自己识别场景切割。例如,在一个实施例中,可以测量沿时间域的亮度变化并且查看该变化是否具有恒定速率。一旦检测到场景切割,就可以将整个场景分割成单个帧,每个帧代表分离的“场景”。

除了上述方法外,为了避免错误的场景切割边界,还可以考虑场景切割边界附近的软过渡。例如,对于检测到的场景切割,可以在场景切割之前添加少量的单帧“场景”,并在场景切割之后添加少量的单帧“场景”。这种方法将提高基于场景的元数据的比特率。

在给定场景边界决策(215)的情况下,场景至片段单元(220)决定哪个场景应该被包括在哪个片段中。这种分派将产生场景至片段分派列表(S2S列表)(230)。调度器节点将针对每个工作者节点输出一个S2S列表。

考虑总共有J个帧的视频序列,将其分组到K个场景中。将第k个场景的对应开始帧索引表示为S

D

将工作节点的数量表示为M。为了将场景分派给每个节点,在一个实施例中,可以推行以下规则:

·场景不能分割成两个或更多较小的子场景以在多于一个节点中处理。换句话说,一个完整的场景必须在一个节点内处理,以保持时间稳定性和整形相关元数据的压缩效率。

·节点不应处理在时间上不连续的场景。例如,不希望节点n处理场景3、6和7,因为场景3和6不是连续的,并且在某个时刻需要在场景3和6之间插入场景4和5。处理不连续的场景将需要后处理步骤依次重新组装所有场景,从而需要额外的后处理。

将分派给节点m的场景集合表示为Φ

φ

在一个实施例中,φ

图3A描绘了根据实施例的场景至片段分配的示例过程(300)。如图3A所示,该过程从初始随机分派开始(305)。在该步骤中,K个场景的列表被随机分割成M个片段。该初始列表将使用迭代算法进一步调整。步骤305初始化两个集合:

·候选集合(Ω

·选定集合(Ψ

在操作开始时,即t=0,Ω

表1:场景至片段分配中的初始化步骤

作为示例,考虑要在3个节点中分配的10个场景的列表,每个场景具有如下所示的可变帧数量

设步骤305的输出为Ψ

节点0:场景0-2

节点1:场景3至7

节点2:场景8-9

在步骤310中,进一步迭代地改进该初始随机分派(Ψ

·(A)移除其最后一个场景并将其移至下一个节点(这不适用于节点M-1)

·(B)从其前一个节点多添加一个场景(这不适用于节点0)

·(C)维持当前的分派。

在这三个选项当中,在步骤355中,测量与分派相关的成本(例如,每个片段中的帧数量的标准差)。较低的成本意味着更均匀的工作负载,并且这是更优选的。因此,对于每个节点,在步骤360中,选择产生最低分派成本的设置。在处理完所有节点之后,在步骤362中,将最低分派成本(例如,

在另一实施例中,代替在节点0处开始节点迭代(例如,步骤350、355和360)并向前移动,还可以在节点M-1处开始节点迭代并向后移动。备选地,也可以尝试在所有节点之间进行双向迭代,并在两者之间选择成本最小的工作负载。

在阶段310之后,给定改进的场景至片段分配,在步骤315中,可以计算新的最佳总体分派成本(以及相关联的S2S分派)。在一个实施例中,为了避免可能导致次优分配的糟糕的随机初始化步骤305,对于L个不同的随机初始化步骤305(例如,通过使用不同的随机种子生成器)重复L次步骤305-315,每一个都产生总体分派成本(l),l=1,2,…L(例如,

因此,在l=1时,

步骤320检查是否完成了所有L次迭代,如果是,则在步骤325中,输出最佳场景至片段分配,即所有L次迭代中具有最佳成本的一个,否则,该过程以另一初始随机分派重复(305)。

为了便于讨论,多添加一个变量

对于m=0,1,…,M-1. (3)在一个实施例中,工作负载的均匀性或分派成本可以被定义为/>

/>

的值越小,向每个节点分派的工作负载就越均匀。表2列出了此改进分派阶段的示例伪代码。

表2:场景至片段分配中的改进分派阶段的示例代码

/>

虽然在一个实施例中但非限制,正在使用的帧的标准差为改进分派阶段提供了良好的成本度量,但是也可以应用备选的成本度量,例如:

·通过节点中最大总分派帧数量减去节点中最小总分派帧数量来测量的工作负载范围

·每个节点中全部帧的工作负载平均值(例如,公式(4)中的

·

返回到我们的示例,表3和表4描述了在随机初始化阶段之后的场景至片段分配和对应的S2S参数。通过

表3:初始化后的示例S2S分配

表4:初始化阶段后的示例分配参数

现在考虑改进分派(310)的示例。在该阶段的第一次迭代中,其中t=0,对于第一节点,m=0,尝试三种不同的策略,并且测量每种情况的标准差

表5:节点0的示例改进分派

表6:节点0的选项A、B、C的S2S参数

在该示例中,在t=0结束时,最佳S2S仍然是表6中所示的成本为

节点0:场景0-3

节点1:场景4-7

节点2:场景8-9

接下来,当t=1时,重复步骤350、355和360。在该示例中,当t=1时,总体成本没有改善,因此该过程将终止。

在一些实施例中,可能优选的是所有片段具有相同数量的帧。在这种情况下,可以将前M-1个节点的帧数量分派为

剩余的帧将被分派给最后一个节点(节点M-1)

基于场景的编码

给定场景至片段分配(230),图4描绘了云中的每个节点上的基于场景的编码的示例架构(210)。回想一下,第k个场景的起始帧索引被表示为S

根据图4,在步骤405中,使用输入的SDR和HDR帧来生成基于场景的前向整形函数。这种函数的参数将被用于整个场景(而不是在逐帧的基础上更新),从而减少了元数据152的开销。接下来,在步骤132中,将前向整形应用于HDR场景(404)以生成经整形的基础层407,经整形的基础层407将由压缩单元(142)编码以生成编码比特流144。最后,在步骤410中,使用经整形的SDR数据407和原始HDR数据(404)来生成用于后向整形函数的参数152,以一起发送到下游解码器。下面将更详细地描述这些步骤。非限制性地,在被称为三维映射表(3DMT)表示的上下文中描述步骤,其中,为了简化操作,每个帧被表示为三维映射表,其中每个颜色分量(例如,Y、Cb或Cr)被细分为“区间(bin)”,不是使用显式像素值来表示图像,而是使用每个区间内的像素平均。3DMT公式的详细信息请参阅参考文献[3]。

前向整形函数(405)的基于场景的生成包括两级操作。首先,收集每一帧的统计信息。例如,对于亮度,计算SDR

其中,ch指亮度或色度通道(例如,Y、Cb或Cr),

给定当前场景内每一帧的统计信息,可以应用场景级算法来计算最佳前向整形系数。例如,对于亮度,可以通过对基于帧的直方图求和或平均来为SDR(B

具有两个场景级直方图,可以应用累积密度函数(CDF)匹配(参考文献[4-5])以生成从HDR到SDR的前向映射函数(FLUT),例如,

对于色度(例如,ch=Cb或ch=Cr),可以再次对公式(7)中的a/B基于帧的表示进行平均,以生成由下式给出的基于场景的a/B矩阵表示

并生成用于整形函数的多颜色、多元回归(MMR)模型的参数如下(参考文献[2-3])

m

然后,可以将经整形的SDR信号(407)生成为:

生成基于场景的后向整形函数(410)也包括帧级和场景级两者的操作。由于亮度映射函数是单通道预测器,因此可以简单地还原前向整形函数以获得后向整形函数。对于色度,使用经整形的SDR数据(407)和原始HDR数据(404)形成3DMT表示,并计算新的基于帧的a/B表示如下:

在场景级,对于亮度,可以应用参考文献[3]中的直方图加权的BLUT构造,以生成后向亮度整形函数。对于色度,可以同样平均基于帧的a/B表示以计算基于场景的a/B表示

后向整形映射函数的MMR模型解由下式给出

m

然后,重构的HDR信号(160)可以被生成为:

参考文献

这些参考文献中的每一个都通过引用整体并入本文。

1.H.Kadu等,“Coding of high-dynamic range video using segment-basedreshaping,”美国专利10,575,028.

2.G-M.Su等,“Multiple color channel multiple regression predictor,”美国专利8,811,490.

3.Q.Song等,PCT专利申请序列号PCT/US2019/031620,“High-fidelity fullreference and high-efficiency reduced reference encoding in end-to-endsingle-layer backward compatible encoding pipeline,”提交于2019年5月9日,公开为WO 2019/217751.

4.B.Wen等,“Inverse luma/chroma mappings with histogram transfer andapproximation,”美国专利10,264,287.

5.H.Kadu和G-M.Su,“Reshaping curve optimization in HDR coding,”美国专利10,397,576.

示例计算机系统实现

本发明的实施例可以用计算机系统、在电子电路和组件中配置的系统,集成电路(IC)设备(诸如微控制器、现场可编程门阵列(FPGA)或另一可配置或可编程逻辑设备(PLD))、离散时间或数字信号处理器(DSP)、专用IC(ASIC)、和/或包括一个或多个这样的系统、设备或组件的装置来实现。计算机和/或IC可以实行、控制或执行与HDR视频的基于云的视频编码中的工作负载分配和基于节点的处理有关的指令,诸如本文描述的那些。计算机和/或IC可以计算与本文所描述的HDR视频的基于云的视频编码中的工作负载分配和基于节点的处理相关的各种参数或值中的任何一个。图像和视频动态范围扩展实施例可以在硬件、软件、固件及其各种组合中实现。

本发明的某些实现方式包括执行软件指令的计算机处理器,软件指令使处理器执行本发明的方法。例如,显示器、编码器、机顶盒、转码器等中的一个或多个处理器可以通过执行处理器可访问的程序存储器中的软件指令来实现如上所述的HDR视频的基于云的视频编码中的工作负载分配和基于节点的处理的方法。本发明还可以以程序产品的形式提供。程序产品可以包括携带计算机可读信号集的任何非瞬态和有形介质,计算机可读信号集包括当由数据处理器执行时使数据处理器执行本发明的方法的指令。根据本发明的程序产品可以是各种非瞬态的和有形的形式中的任何一种。程序产品可以包括例如物理介质,诸如包括软盘、硬盘驱动器的磁数据存储介质,包括CD-ROM、DVD的光数据存储介质,包括ROM、闪存RAM的电子数据存储介质等。程序产品上的计算机可读信号可以可选地被压缩或加密。

在上面提到了组件(例如,软件模块、处理器、配件、设备、电路等)的情况下,除非另有说明,否则对该组件的引用(包括对“装置”的引用)应被解释为包括执行所描述组件的功能的任何组件(例如,在功能上等同)作为该组件的等同形式,包括在结构上不等同于在本发明所示的示例实施例中执行该功能的所公开结构的组件。

等同形式、扩展形式、备选形式及其他

本发明的列举示例实施例(EEE)定义如下,但不限于此:

EEE1.一种用于将场景序列分配给片段以由一个或多个计算节点编码的方法,所述方法包括:

接收场景序列,其中每个场景包括一个或多个视频帧;以及

执行一个或多个分派迭代以生成最佳输出分派,其中执行所述一个或多个分派迭代包括:

对于所述一个或多个分派迭代中的迭代:

基于针对所述分派迭代的随机种子选择,生成所述场景序列到M个计算节点的初始随机分派(305),其中M>1;

基于所述初始随机分派执行改进分派步骤(310),以生成所述场景序列到M个计算节点的改进分派以及改进分派成本;以及

基于所述改进分派和改进分派成本来更新最佳分派成本和最佳输出分派(315)。

EEE2.如EEE1所述的方法,其中执行所述改进分派步骤(310)包括:

用第一值初始化总分派成本;

对于每个计算节点,根据所述场景序列到所述M个计算节点的所述初始随机分派来设置节点工作负载;以及

重复以下步骤直到收敛:

顺序地对于每个节点,从第一个节点开始:

从所述节点工作负载中移除场景并将其分配给其下一个可用节点的工作负载,并且针对所述M个计算节点计算第一成本度量;

向取自其上一个可用节点的工作负载的节点工作负载添加场景,并且针对所述M个计算节点计算第二成本度量;

保持所述节点工作负载不变,并且针对所述M个计算节点计算第三成本度量;以及

基于所述第一成本度量、所述第二成本度量和所述第三成本度量中的最小值来生成(360)更新的节点工作负载;

基于所述更新的节点工作负载计算迭代分派成本;以及

如果总分派成本小于所述迭代分派成本,则:用信号通知收敛,将所述更新的节点工作负载作为所述改进分派输出,并且将所述总分派成本作为所述改进分派成本输出,否则:通过将所述总分派成本替换为所述迭代分派成本来继续。

EEE3.如EEE2所述的方法,其中第一值包括对被分派给每个节点的帧总数的最大可能标准差的估计。

EEE4.如EEE1-EEE3中任一项所述的方法,其中生成所述初始随机分派包括:

生成具有从1到K-1的场景索引的候选集合,其中K表示要分配给所述M个计算节点的所述场景序列中的场景总数;

生成第一元素为0的分派集合;

根据利用所述随机种子选择的随机选择来更新所述分派集合以生成更新的分派集合;

对所述更新的分派集合进行升序排序,以生成经排序的分派集合;

根据所述经排序的分派集合生成所述初始随机分派,其中,更新所述分派集合包括:

对于t=1至M-1:

在0和K-t-1之间选择随机整数p;

识别所述候选集合中的第p个元素并且将其附加到所述分派集合;

移除所述候选集合中的第p个元素;以及

对所述候选集合进行升序排序。

EEE5.如EEE4所述的方法,其中根据所述经排序的分派集合生成所述初始随机分派包括:

将具有在等于或大于所述经排序的分派集合中的第m个元素但小于所述经排序的分派集合中的第m+1个元素的值之间的索引的所有场景分派给节点m。

EEE6.如EEE1-EEE5中任一项所述的方法,其中基于每个计算节点的场景至节点分派来计算所有计算节点的成本度量包括:

对于每个计算节点,基于所述场景至节点分派来计算被分派给所述计算节点的帧总数;以及

计算被分派给每个计算节点的帧总数的标准差。

EEE7.如EEE1-EEE6中任一项所述的方法,其中从所述节点工作负载中移除场景并将其分配给其下一个可用节点的工作负载包括:

识别被分派给所述节点的最后一个场景,并且将其作为第一个场景分配给其下一个可用节点的工作负载。

EEE8.如EEE1-EEE7中任一项所述的方法,其中将场景添加到取自其前一个可用节点的工作负载的节点工作负载包括:

识别被分派给前一个可用节点的最后一个场景,并且将其作为第一个场景分配给节点工作负载。

EEE9.如EEE1-EEE8中任一项所述的方法,其中更新所述最佳分派成本和所述最佳输出分派包括:

对于第一次分派迭代,将所述改进分派设置为所述最佳输出分派,并且将所述改进分派成本设置为所述最佳分派成本;以及

对于后续的分派迭代,将所述改进分派成本与所述最佳分派成本进行比较;并且如果所述最佳分派成本大于所述改进分派成本,则选择所述改进分派作为所述最佳输出分派,并且选择所述改进分派成本作为所述最佳分派成本。

EEE10.如EEE1-EEE9中任一项所述的方法,还包括:

对于所述M个计算节点中的节点:

根据所述场景序列到所述节点的所述最佳输出分派,访问被分派给所述节点的场景的高动态范围(HDR)帧序列和对应的标准动态范围帧(SDR)序列;以及

针对被分派给所述节点的场景生成输出比特流。

EEE11.如EEE10所述的方法,其中生成所述输出比特流还包括:

基于所述HDR帧序列和所述SDR帧序列生成基于场景的前向整形函数;

基于所述基于场景的前向整形函数将所述HDR帧序列映射到经整形的SDR帧序列;

通过压缩所述经整形的SDR帧序列来生成编码比特流;

基于所述经整形的SDR帧序列、所述HDR帧序列和所述基于场景的前向整形函数,生成基于场景的后向整形函数;

基于所述基于场景的后向整形函数的参数生成元数据;以及

输出包括所述编码比特流和所述元数据的所述输出比特流。

EEE12.一种其上存储有计算机可执行指令的非瞬态计算机可读存储介质,所述计算机可执行指令用于利用一个或多个处理器执行如EEE1-EEE11中任一项所述的方法。

EEE13.一种包括处理器并被配置为执行EEE1-EEE11中所记载的任一方法的装置。

因此描述了涉及HDR视频的基于云的视频编码中的工作负载分配和基于节点的处理的示例实施例。在前述说明书中,本发明的实施例已经参考许多具体细节来描述,这些具体细节可以随实现方式的不同而不同。因此,对于本发明是什么以及申请人希望本发明是什么的唯一和排他性的指标是从本申请发布的权利要求的集合,以这些权利要求发布的具体形式,包括任何后续更正。本文明确阐述的对这些权利要求中所包含的术语的任何定义应支配权利要求中所使用的这些术语的含义。因此,没有在权利要求中明确记载的限制、元素、性质、特征、优点或属性不应以任何方式限制此权利要求的范围。因此,说明书和附图应视为说明性意义,而不是限制性意义。

技术分类

06120115923063