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

用于在压缩视频文件中保存带内元数据的系统和方法与流程

2021-12-04 03:53:00 来源:中国专利 TAG:

用于在压缩视频文件中保存带内元数据的系统和方法
1.相关申请的交叉引用
2.本技术要求2019年5月12日提交的美国申请第62/846,732号和2020年1月13日提交的美国申请第16/740,700号的优先权。美国申请第62/846,732号和美国申请第16/740,700号的内容出于所有目的通过引用以其整体并入本文。
3.附图简述
4.附图示出了许多示例性实施例,并且是说明书的一部分。连同下面的描述一起,附图展示并解释了本公开的各种原理。
5.图1是用于在压缩视频文件内保存(persist)带内元数据的示例性系统的框图。
6.图2是用于在压缩视频文件内保存带内元数据的附加示例性系统的框图。
7.图3是用于在压缩视频文件内保存带内元数据的示例性方法的流程图。
8.图4是用于在压缩视频文件内保存带内元数据的附加示例性系统的框图。
9.图5是用于在压缩视频文件内保存带内元数据的附加示例性系统的框图。
10.图6是用于在压缩视频文件内保存带内元数据的附加示例性系统的框图。
11.图7是压缩视频比特流的图示。
12.图8是附加压缩视频比特流的图示。
13.虽然本文描述的示例性实施例易于进行各种修改和替代形式,但是特定实施例已经在附图中以示例的方式被示出,并且将在本文详细描述。然而,本文描述的示例性实施例并不旨在局限于所公开的特定形式。相反,本公开覆盖了落入本公开范围内的所有修改、组合、等同物和替代物。
14.示例性实施例的详细描述
15.本公开总体上涉及用于在压缩视频文件内保存带内元数据的系统和方法。如下文将更详细解释的,这些系统和方法可以提供许多特征和益处。
16.视频质量度量(也称为“视频质量模型”和/或“视频质量评估方法”)通常由主要视频内容提供商在其内部处理流水线(pipeline)中使用。这种视频质量度量可以有效地驱动和/或影响那些视频内容提供商的编码决策和/或自适应比特率(abr)决策。
17.各种客观和/或主观视频质量度量可以指示和/或描述视频序列的质量。例如,全参考(fr,full

reference)模型可以通过将原始视频信号与接收到的视频信号进行比较来确定质量差异。作为另外的示例,部分参考(rr,reduced reference)模型可以提取原始视频信号的一些特征和接收到的视频信号的一些特征,并且可以比较它们以确定质量分数。此外,无参考(nr,no

reference)模型可以在不参考原始视频信号的情况下评估接收到的视频信号的质量。
18.许多视频分发和/或优化系统可以利用这种视频质量度量来提高压缩视频比特流和/或自适应流传输应用的质量。不幸的是,这种视频质量度量的传统存储和/或传输可能有一些缺点和/或不足。例如,传统的视频处理流水线可能涉及相对于视频内容本身在带外存储和/或传输视频质量度量。附加地或替代地,这种传统的视频处理流水线可能涉及以相对于彼此不标准和/或不同的方式存储和/或传输视频质量度量。换句话说,目前不存在用
于在压缩视频比特流中包括和/或嵌入视频质量信息的标准方法。因此,本公开识别并解决了对用于在压缩视频比特流中保存带内元数据的附加和/或改进的系统和方法的需求。
19.在一些示例中,本文描述的各种系统和方法可以接收与视频对象(例如,视频比特流、视频文件等)相关联的一个或更多个视频质量度量。在这样的示例中,本文描述的各种系统和方法可以通过根据一种或更多种视频质量评估技术检查和/或分析视频对象来识别和/或确定视频质量度量。在一些实现中,视频质量度量可以包括fr度量,例如峰值信噪比(psnr)、结构相似性(ssim)指数、视觉信息保真度(vif)指数、细节损失度量(dlm)等。在附加或替代实现中,视频质量度量可以包括nr度量,例如盲/无参考图像空间质量评估器(brisque)度量、基于特征图的无参考图像质量评估引擎(friquee)度量、视频bliinds(v

bliinds)度量、块效应指示符(blockiness indicator)等。在进一步的实现中,视频质量度量可以包括缩放的度量,例如显示分辨率、上采样算法、观看距离、目标显示类型等。
20.在一些示例中,本文描述的各种系统和方法可以对压缩视频比特流执行规范解码操作。在这样的示例中,本文描述的各种系统和方法可以遵循具有非规范缩放操作的规范解码操作,该非规范缩放操作将解码的帧缩放到目标显示尺寸。例如,1280
×
720avc/h.264流可以被解码以在1920
×
1080显示器上显示。在该示例中,如果输入到编码器中的原始源视频是通过对1920
×
1080视频进行下采样获得的,则本文描述的各种系统和方法可能需要根据解码视频在1920
×
1080显示器上呈现时的外观来评估和/或表达视频质量。因此,规范解码操作之后可以是依赖于设备和/或非规范的上采样操作。
21.在一些示例中,嵌入在压缩视频比特流中的视频质量度量可以包括和/或表示缩放度量和非缩放度量。例如,本文描述的视频质量度量可以包括具有各种参数的缩放度量。这些参数可以包括但不限于,渲染(显示)分辨率,例如1920
×
1080,上采样算法,例如lanczos滤波器,观看距离,例如显示高度的倍数(例如3
×
h,其中h是显示高度),和/或目标显示器类型(例如电视、膝上型计算机显示器、记事本计算机显示器、智能手机显示器等)。
22.在一些示例中,视频质量度量可以与视频对象的一部分相关联,例如帧、图片组(gop)、镜头、场景、时间戳等。嵌入在压缩视频比特流中的视频质量度量的粒度级别可以对实现者开放。例如,本文描述的各种系统和方法可以在对于psnr、ssim、vif和/或vmaf是典型的帧级别对视频质量度量进行编码。附加地或替代地,本文描述的各种系统和方法可以在更粗略的时间级别(例如gop、镜头、场景,或者甚至整个序列级别)对视频质量度量进行编码。在一个示例中,在帧序列上评估的视频质量度量可以包括和/或表示运动调谐视频完整性评估(movie,motion

tuned video integrity evaluation)指数和/或视频质量监视器(vqm,video quality monitor)测量值。
23.在一些示例中,本文描述的各种系统和方法可以根据信息或语法的特定排列生成和/或嵌入描述比特流的一部分的视频质量度量。比特流的这一部分的示例包括但不限于起始帧、一定数量的帧和/或聚合类型(例如算术平均值、调和平均值(harmonic mean)和/或百分位池化(percentile pooling))。
24.在一些示例中,视频质量度量可以各自具有唯一或特定的范围、范围集合、值集合、符号集合、尺度等。这些视频质量度量可用于反映、编码和/或表示它们各自的结果和/或值。例如,psnr值可以在20db到60db的范围内变化,ssim值可以在0到1的范围内变化,vmaf值可以在0到100的范围内变化,等等。为了促进互操作性,本文描述的各种系统和方法
可以提供和/或建立用于以1到5的绝对分类尺度(acr)范围(类似于likert或likert类型的尺度)报告和/或传输视频质量度量的标准化字段。在一个示例中,本文描述的各种系统和方法可以通过对主观得分和/或与给定视频质量度量的相关性进行统计分析来实现和/或获得每个视频质量度量的映射函数。类似地,该统计分析可以在元数据内提供和/或传达置信区间的量度。
25.在一些示例中,本文描述的各种系统和方法可以在比特流(例如,视频流)中嵌入标识和/或表示视频质量的特定类型损伤的视频质量信息。这种损伤可以包括但不限于压缩伪像、缩放伪像、几何失真(例如,由视频序列到目标显示器的不正确适配(fitting)导致的)、分组丢失(例如,传输错误)、帧冻结(例如,再缓冲事件)、启动延迟(例如,预缓冲)、音频/视频同步问题(例如,唇同步错误)等等。
26.视频通信中的实际用例可以包括和/或表示现有压缩视频比特流到其他格式和/或比特率的转换。例如,包括视频质量信息的比特流可以经历解码操作和随后的重新编码操作。在该示例中,本文描述的各种系统和方法可以跨这种代码转换操作(transcoding operation)跟踪视频质量信息(例如,原始编码分数和一个或更多个后续生成质量分数)。该视频质量信息可以表示由不同设备应用于比特流的跨代码转换操作的视频质量度量的历史或日志。
27.作为具体示例,本文描述的各种系统和方法可以嵌入(例如,编码、集成、复用、组合等)包括视频对象的比特流的带内元数据字段内的视频质量信息(例如,一个或更多个视频质量度量)。在该示例中,带内元数据字段可以表示高效视频编码(hevc)流内的补充增强信息(sei)消息的一部分。
28.在一些示例中,带内元数据字段可以表示包括视频对象的比特流(例如,压缩视频比特流)的未加密部分的一部分。这种带内元数据字段的示例包括但不限于视频质量度量名称(例如,“ssim”)、视频质量原始分数(例如,“0.9256”)、视频质量平均意见分数(mos)(例如,“3.89”)、95%置信区间(例如,“0.1”)、缩放方法(例如,对于非缩放视频的“无(none)”、对于lanczos缩放方法的“lanczos

5”等)、时间参考(例如,当指序列中的前四帧时为“0

3”)、聚合方法(例如,“算术平均”)、生成指数(例如,如果有两个先前的编码步骤,例如图像传感器和第一编码生成,则为“2”)等等。
29.继续该示例,本文描述的各种系统和方法可以访问包括在比特流中的视频质量信息,然后基于视频质量信息执行一个或更多个视频操作(例如,呈现视频对象、对视频对象进行代码转换等)。在该示例中,这些系统和方法可以解码比特流和/或根据比特流中包括的视频质量信息呈现比特流中包括的视频对象。例如,这些系统和方法可以至少部分地基于包括在比特流中的视频质量信息来调整视频对象的呈现。附加地或替代地,这些系统和方法可以至少部分地基于嵌入的视频质量信息,对包括在视频比特流中的视频对象进行代码转换(例如,解码和重新编码)。
30.本文描述的系统和方法可以提供优于用于保持和/或利用视频质量度量的传统选项的一个或更多个优点。例如,通过在压缩视频比特流中嵌入一个或更多个视频质量度量作为带内元数据,这些系统和方法能够结合视频管理和/或代码转换应用来访问和/或利用来自比特流的视频质量度量。此外,通过根据预定的和/或标准化的带内格式和/或方案嵌入这样的视频质量度量,这些系统和方法可以通过促进使用带内视频质量度量以用于呈现
和/或代码转换比特流,来提高视频管理和/或代码转换应用的互操作性。
31.参考图1、图2和图4

图6,以下将提供能够在压缩视频文件内保存带内元数据的各种系统、组件和/或实现的详细描述。对应于图3的讨论将提供用于在压缩视频文件内保存带内元数据的示例性方法的详细描述。对应于图7和图8的讨论将提供用于在压缩视频文件内保存带内元数据的示例性格式和/或方案的详细描述。
32.图1是用于在压缩视频文件内保存带内元数据的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或更多个任务的一个或更多个模块102。如下文将更详细解释的,模块102可以包括接收模块104、提取模块106、确定模块108、决策制定模块110、处理模块112、呈现模块114、生成模块116、元数据模块118和转发模块120。尽管作为单独的元件示出,但图1中的一个或更多个模块102可以代表单个模块、应用和/或操作系统的部分。例如,模块102可以表示视频编码器、视频解码器和/或视频代码转换器的一部分和/或包含在其中。
33.在某些实施例中,图1中的一个或更多个模块102可以表示一个或更多个软件应用或程序,当由计算设备执行时,其使计算设备执行一个或更多个任务。例如,并且如下文将更详细描述的,模块102中的一个或更多个可以被存储和配置为在一个或更多个计算设备上运行,诸如图2中示出的设备(例如,计算设备202、计算设备208和/或网络设备206)、图4中示出的设备(例如,源设备402和/或目的设备410)、图5中示出的设备(例如,网络设备206)和/或图6中示出的设备(例如,计算设备202、网络设备206、计算设备208和/或计算设备610)。图1中的一个或更多个模块102也可以代表被配置成执行一个或更多个任务的一个或更多个专用计算机的全部或部分。
34.如图1所示,示例系统100还可以包括一个或更多个存储器设备(例如存储器122)。存储器122通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器122可以存储、加载和/或维护一个或更多个模块102。存储器122的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、一个或更多个上述存储器的变型或组合、和/或任何其他合适的储存存储器。
35.如图1所示,示例性系统100还可以包括一个或更多个物理处理器,例如物理处理器130。物理处理器130通常表示能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理设备。在一个示例中,物理处理器130可以访问和/或修改存储在存储器122中的一个或更多个模块102。附加地或替代地,物理处理器130可以执行一个或更多个模块102,以便于将带内元数据保存在压缩视频比特流中。物理处理器130的示例包括但不限于中央处理单元(cpu)、微处理器、微控制器、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、片上系统(soc)、一个或更多个上述处理器的部分、一个或更多个上述处理器的变型或组合、和/或任何其他合适的物理处理器。
36.如图1所示,示例性系统100还可以包括压缩视频比特流140。在一个示例中,压缩视频比特流140可以包括和/或表示从一个设备传输到另一个设备的视频文件和/或流。在该示例中,压缩视频比特流140可以包括和/或表示用于呈现给终端用户的视频数据142和/或与视频数据142相关联的带内元数据144。附加地或替代地,压缩视频比特流140可以通过编码操作被编码和/或通过解码操作被解码。此外,压缩视频比特流140可以通过代码转换
操作(例如,编码和解码操作的组合)进行代码转换。
37.在一些示例中,视频数据142可以包括、表示和/或构成视频对象,例如一个或更多个帧、像素、图片组(gop)、镜头、场景等。附加地或替代地,带内元数据144可以以促进和/或支持处理而不干扰像素解码的方式被插入和/或嵌入到压缩视频比特流140中。
38.在一些示例中,带内元数据144可以包括、表示和/或构成一个或更多个视频质量度量,例如fr度量、rr度量和/或nr度量。fr度量的示例包括但不限于psnr、ssim指数、vif指数、dlm、视频多方法评估融合(vmaf)值、多尺度ssim(ms

ssim)指数、运动调谐视频完整性评估(movie)指数、视频质量度量(vqm)、一个或更多个上述度量的变型或组合、和/或任何其他合适的fr度量。nr度量的示例包括但不限于brisque度量、friquee度量、v

bliinds度量、块效应指示符、一个或更多个上述度量的变型或组合,和/或任何其他合适的nr度量。
39.在一些示例中,带内元数据144可以标识和/或描述在压缩视频比特流140的生成、处理和/或传输中涉及的一个或更多个设备的某些特征。这种设备特定特征的示例包括但不限于硬件细节、相机信息和/或细节、色彩平衡信息、高/低增益信息、降噪信息、相机品牌/型号信息、相机镜头信息、一个或更多个上述特征的变型或组合、和/或任何其他合适的设备特定特征。附加地或替代地,带内元数据144可以标识和/或描述质量度量的名称、那些质量度量的值、和/或指示那些质量度量是缩放的还是未缩放的某些缩放标志。
40.一种用于在压缩视频文件内保存带内元数据的装置可以包括示例性系统100的全部或部分。在一些示例中,图1中的系统100可以以多种方式实现。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可以包括便于网络设备206、计算设备202和/或计算设备208之间的通信的网络204。
41.在一些示例中,网络204可以包括和/或表示形成和/或建立通信路径和/或段(尽管不一定在图2中示出)的各种网络设备和/或节点。在一个示例中,网络204可以包括在计算设备202和计算设备208之间转发流量的网络设备206。
42.在一些示例中,并且如下文将更详细描述的,模块102中的一个或更多个可以使得计算设备202、计算设备208和/或网络设备206:(1)接收压缩视频比特流140,该压缩视频比特流140包括(a)视频数据142和(b)指示压缩视频比特流140的视频质量的带内元数据144,(2)从压缩视频比特流140中提取带内元数据144,(3)至少部分地基于带内元数据144确定压缩视频比特流140的视频质量,和/或(4)至少部分地基于压缩视频比特流140的视频质量制定与压缩视频比特流140相关的至少一个视频处理决策。
43.在一些示例中,网络设备206以及计算设备202和208通常可以各自代表能够读取计算机可执行指令的任何类型或形式的物理计算设备。网络设备206和计算设备202或208的示例包括但不限于路由器(例如提供商边缘路由器(edge router)、中心路由器(hub router)、分支路由器(spoke router)、自治系统边缘路由器和/或区域边缘路由器)、交换机、集线器、调制解调器、网桥、中继器、网关(例如宽带网络网关)、多路复用器、网络适配器、网络接口、客户端设备、笔记本电脑、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(pda)、多媒体播放器、嵌入式系统、可穿戴设备、智能手表、游戏控制台、头戴式显示器、人工现实设备、一个或更多个上述设备的变型或组合和/或任何其他合适设备。
44.在一些示例中,网络204通常可以表示能够促进通信或数据传输的任何介质或架构。在一个示例中,网络204可以包括一个或更多个计算设备202和208,即使这些设备在图2
中被示为在网络204外部。附加地或替代地,网络204可以包括促进网络设备206和/或计算设备202和208之间的通信的其他设备。网络204可以使用无线和/或有线连接来促进通信或数据传输。网络204的示例包括但不限于内联网、接入网络、第2层网络、第3层网络、mpls网络、互联网协议(ip)网络、异构网络(例如,第2层、第3层、ip和/或mpls)网络、广域网(wan)、局域网(lan)、个人区域网(pan)、互联网、电力线通信(plc)、蜂窝网络(例如,全球移动通信系统(gsm)网络)、一个或更多个上述网络的部分、一个或更多个上述网络的变型或组合、和/或任何其他合适的网络。
45.图3是用于在压缩视频文件内保存带内元数据的示例性计算机实现方法300的流程图。图3所示的步骤可以由任何合适的计算机可执行代码和/或计算系统来执行,包括图1中的系统100、图2中的系统200、图4中的系统400、图5中的系统500、图6中的系统600和/或一个或更多个上述系统的变型或组合。在一个示例中,图3所示的每个步骤可以表示其结构包括多个子步骤和/或由多个子步骤表示的算法,其示例将在下面更详细地提供。
46.如图3所示,在步骤310,本文描述的一个或更多个系统可以在计算设备处接收压缩视频比特流,该压缩视频比特流包括视频数据和指示压缩视频比特流的视频质量的带内元数据。例如,接收模块104可以作为图2中的网络设备206或计算设备208的一部分,接收包括视频数据142和带内元数据144的压缩视频比特流140。在该示例中,视频数据142和带内元数据144可以在压缩视频比特流140中顺序地和/或连续地排列和/或组织。因此,视频数据142和带内元数据144可以被表示、编码和/或流式传输为从一个设备传输到另一个设备的比特序列(例如,1和0)。
47.在该示例中,带内元数据144可以包括和/或表示与视频数据142合并到同一频带和/或信道中的元数据和/或信令。因此,带内元数据144可以作为同一比特流的一部分与视频数据142一起传输。相反,带外元数据可以包括和/或表示独立于和/或分离于主带内数据流、带和/或信道而传输的元数据和/或信令。
48.本文描述的系统可以以各种方式和/或上下文来执行步骤310。在一些示例中,接收模块104可以监控网络设备206和/或计算设备208中从网络204内的某些设备到达的分组。例如,计算设备202可以经由网络204向网络设备206发送和/或转发压缩视频比特流140。当以这种方式监控网络设备206时,接收模块104可以在压缩视频比特流140从计算设备202到达网络设备206时检测和/或接收压缩视频比特流140的全部或一部分。
49.返回图3,在步骤320,本文描述的一个或更多个系统可以在计算设备处从压缩视频比特流中提取带内元数据。例如,提取模块106可以作为图2中的网络设备206或计算设备208的一部分,从压缩视频比特流140中提取带内元数据144。在一个示例中,带内元数据144可以包括和/或表示一代或更多代视频质量度量,其指示和/或描述在压缩视频比特流140上沿着其网络行程(network journey)执行的代码转换操作中的某些损失和/或降级。
50.本文描述的系统可以以各种方式和/或上下文来执行步骤320。在一些示例中,提取模块106可以在压缩视频比特流140中搜索与视频数据142相关联的任何带内元数据。在一个示例中,该搜索可以针对和/或专用于压缩视频比特流140中包括的带内数据。在该搜索期间,提取模块106可以检测和/或识别指示和/或描述视频数据142的视频质量的带内元数据144。这样做时,提取模块106可以从压缩视频比特流140中提取和/或获得带内元数据144。
51.在一些示例中,提取模块106可以被配置和/或编程为在压缩视频比特流140的特定部分和/或片段(segment)中搜索这种带内元数据。在一个示例中,行业标准可以为这种带内元数据指定和/或保留压缩视频比特流140的特定部分或片段。例如,作为计算设备202的一部分,处理模块112可以对压缩视频比特流140执行编码操作。在该示例中,作为编码操作的一部分,元数据模块118可以作为计算设备202的一部分,通过将一个或更多个质量度量前置到压缩视频比特流140的开头部分,将该质量度量嵌入到压缩视频比特流140中。可选地,作为编码操作的一部分,元数据模块118可以作为计算设备202的一部分,通过将一个或更多个质量度量附加到压缩视频比特流140的结尾部分来将这些质量度量嵌入到压缩视频比特流140中。
52.在一个示例中,提取模块106可以搜索压缩视频比特流140的已经被行业标准指定和/或保留用于带内元数据的部分或片段。在压缩视频比特流140的指定和/或保留部分或片段的搜索期间,提取模块106可以定位压缩视频比特流140中的已经为带内元数据指定和/或保留的带内位置。在压缩视频比特流140的该位置处,提取模块106可以检测和/或识别带内元数据144。这样做时,提取模块106可以从压缩视频比特流140中提取和/或获得带内元数据144。
53.在一些示例中,带内元数据144可以包括和/或表示指示和/或描述视频数据142的视频质量的多代视频质量度量。例如,带内元数据144可以包括和/或表示第一代视频质量度量,该度量指示和/或描述在第一次被编码时视频数据142的视频质量。在该示例中,带内元数据144还可以包括和/或表示第二代视频质量度量,该度量指示和/或描述在被第二次编码时视频数据142的视频质量。如下文将更详细描述的,带内元数据144还可以包括和/或表示指示和/或描述视频数据142在第二次之后被编码时的视频质量的一个或更多个更多代视频质量度量。
54.作为特定示例,生成模块116可以作为计算设备202的一部分,生成第一代质量度量,该第一代质量度量表示在第一次被编码时视频数据142的视频质量。在该示例中,元数据模块118可以作为计算设备202的一部分,将第一代质量度量嵌入和/或插入压缩视频比特流140中包括的带内元数据144。作为计算设备202的一部分,转发模块120可以经由网络204将压缩视频比特流140转发到网络设备206。
55.继续该示例,当压缩视频比特流140到达网络设备206时,作为网络设备206的一部分,处理模块112可以对压缩视频比特流140执行代码转换操作。在该示例中,代码转换操作可以包括解码视频数据142的解码操作和重新编码视频数据142的编码操作。生成模块116的另一个实例可以作为网络设备206的一部分,生成表示在第一次解码和/或第二次编码时的视频数据142的视频质量的第二代质量度量。元数据模块118的另一个实例可以作为网络设备206的一部分,将第二代质量度量嵌入和/或插入压缩视频比特流140中包括的带内元数据144。转发模块120的另一实例可以作为网络设备206的一部分,经由网络204将压缩视频比特流140的代码转换版本转发给计算设备208。
56.返回图3,在步骤330,本文描述的一个或更多个系统可以至少部分地基于带内元数据来确定压缩视频比特流的视频质量。例如,确定模块108可以作为图2中的网络设备206或计算设备208的一部分,至少部分地基于带内元数据144来确定压缩视频比特流140的视频质量。在该示例中,所确定的视频质量可以指示和/或表示视频数据142在被解码并呈现
给终端用户显示时的相对质量和/或外观。
57.本文描述的系统可以以各种方式和/或上下文来执行步骤330。在一些示例中,确定模块108可以分析、评估和/或估定与视频数据142相关联的带内元数据144。例如,确定模块108可以彼此识别压缩视频比特流140中包括的多代质量度量。这样做时,确定模块108可以至少部分地基于该比较来确定视频数据142的视频质量。
58.在一些示例中,确定模块108可以计算跨压缩视频比特流140中包括的多代质量度量的损失和/或降级量。在这样的示例中,确定模块108可以将压缩视频比特流140中包括的多代质量度量彼此相加和/或求和。这些多代质量度量可以表示在压缩视频比特流140的整个网络行程中视频数据142的质量或外观的损失和/或降级的历史或日志。在将这些代质量度量相加和/或求和时,确定模块108可以至少部分地基于质量度量的结果总和来确定视频数据142的视频质量。
59.返回图3,在步骤340,本文描述的一个或更多个系统可以至少部分地基于压缩视频比特流的视频质量制定与压缩视频比特流相关的至少一个视频处理决策。例如,决策制定模块110可以作为图2中的网络设备206或计算设备208的一部分,至少部分地基于压缩视频比特流140的视频质量,制定与压缩视频比特流140相关的至少一个视频处理决策。在该示例中,视频处理决策可以由主要视频内容提供商在其内部处理流水线中制定。附加地或替代地,视频处理决策可以有效地驱动和/或影响编码和/或解码决策。此外,视频处理决策可以有效地驱动和/或影响压缩视频比特流140的abr。
60.本文描述的系统可以以各种方式和/或上下文来执行步骤340。在一些示例中,决策制定模块110可以选择至少一个编码参数来作为对压缩视频比特流140中包括的视频数据142执行的编码操作的一部分进行应用。在其他示例中,决策制定模块110可以选择至少一个解码参数来作为对压缩视频比特流140中包括的视频数据142执行的解码操作的一部分进行应用。附加地或替代地,决策制定模块110可以选择将压缩视频比特流传送到显示设备以呈现给最终用户的特定比特率。
61.在一些示例中,作为图2中的网络设备206和/或计算设备208的一部分,处理模块112可以根据视频处理决策来处理包括在压缩视频比特流140中的视频数据142。在一个示例中,处理模块112可以对视频数据142执行一个或更多个规范视频处理操作。在该示例中,如果这样的视频处理操作是设备不可知的和/或设备无关的,则它们可以被认为是规范的。换句话说,处理模块112可以对压缩视频比特流140执行规范的视频处理操作,而不管视频数据142在其上可视地呈现给最终用户的显示设备的规格、属性和/或参数。
62.在另一个示例中,处理模块112可以对视频数据142执行一个或更多个非规范的视频处理操作。在该示例中,如果这样的视频处理操作是设备特定的和/或设备相关的,则它们可以被认为是非规范的。换句话说,处理模块112可以根据和/或遵循视频数据142在其上可视地呈现给终端用户的显示设备的一个或更多个规范、属性和/或参数,对压缩视频比特流140执行非规范的视频处理操作。
63.在一些示例中,确定模块108可以识别显示设备的一个或更多个属性。例如,确定模块108可以识别显示设备的分辨率。在该示例中,决策制定模块110然后可以至少部分地基于压缩视频比特流140的视频质量和显示设备的属性(例如,显示设备的分辨率)制定视频处理决策。
64.在一些示例中,视频处理决策可能涉及特定比特率的选择。在一个示例中,处理模块112可以对将压缩视频比特流140传送到显示设备的abr进行选择。在该示例中,对abr的选择可以至少部分地基于显示设备的分辨率。
65.在其他示例中,视频处理决策可能涉及某些缩放操作(例如上采样)。在一个示例中,处理模块112可以对压缩视频比特流140中包括的视频数据142执行缩放操作。在该示例中,缩放操作可以有效地使视频数据142适合和/或符合显示设备的分辨率。
66.作为具体示例,处理模块112可以通过解码1280
×
720avc/h.264流来执行规范操作,用于在1920
×
1080显示设备上的视觉呈现。在该示例中,如果输入到编码器的原始源视频是通过1920
×
1080视频的下采样获得的,则处理模块112可以通过上采样缩放1280
×
720avc/h.264流以适合1920
×
1080显示。
67.图4示出了示例性系统400,其包括和/或表示经由网络204彼此通信的源设备402和目的设备410。尽管在图4中未示出,但一个或更多个模块102可以在源设备402和/或目的设备410上运行和/或由源设备402和/或目的设备410执行,以执行下面描述的任何任务和/或操作。在一个示例中,源设备402可以包括、表示和/或耦合到生成和/或产生未编码视频数据404的摄像机。在该示例中,源设备402可以包括和/或部署对未编码视频数据404进行编码和/或压缩的视频编码器406。结果,视频编码器406可以从未编码视频数据404生成和/或产生编码视频数据442。源设备402然后可以生成和/或产生包括编码视频数据442和带内元数据144的压缩视频比特流140。
68.如图4所示,源设备402可以经由网络204向目的设备410发送和/或传输压缩视频比特流140。一旦接收到压缩视频比特流140,目的设备410可以从压缩视频比特流140中提取编码视频数据442。在一个示例中,目的设备410可以包括和/或部署对编码视频数据442进行解码和/或解压缩的视频解码器418。结果,视频解码器406可以从编码视频数据442生成和/或产生解码视频数据412。在该示例中,目的设备410可以包括、表示和/或耦合到显示设备450,显示设备450向终端用户可视地呈现解码视频数据412。
69.图5示出了示例性系统500,其包括和/或表示经由网络204接收和/或转发压缩视频比特流140的网络设备206。尽管在图5中未示出,但一个或更多个模块102可以在网络设备206上运行和/或由网络设备206执行,以执行下面描述的任何任务和/或操作。在一个示例中,在经由网络204接收到压缩视频比特流140时,网络设备206可以从压缩视频比特流140中提取编码视频数据542。在一个示例中,网络设备206可以包括和/或部署对编码视频数据542进行解码和/或解压缩的视频解码器518。结果,视频解码器406可以从编码视频数据442生成和/或产生解码视频数据512。
70.在一些示例中,视频解码器518可以具有影响和/或支配解码视频数据512的视频质量的某些属性和/或参数。在一个示例中,图5中的视频解码器518的这些属性和/或参数可以不同于图4中的视频解码器418的某些属性和/或参数。结果,由视频解码器518引入到图5中的解码视频数据512的丢失和/或降级的量可以不同于由视频解码器418引入到图4中的解码视频数据412的丢失和/或降级的量。
71.在一个示例中,网络设备206可以包括和/或部署对解码视频数据512进行编码和/或压缩的视频编码器506。结果,视频编码器506可以从解码视频数据512生成和/或产生编码视频数据552。通过以这种方式解码视频数据然后重新编码视频数据,网络设备206可以
有效地对压缩视频比特流140执行代码转换操作。作为该代码转换操作的一部分,网络设备206可以在视频数据被编码时作为代码转换操作的一部分生成和/或产生表示视频数据的视频质量的质量度量。网络设备206然后可以将该质量度量嵌入和/或插入压缩视频比特流140中包括的带内元数据144。在将该质量度量嵌入和/或插入带内元数据144时,网络设备206可以将压缩视频比特流140转发到附加的计算设备(例如,图2中的计算设备208和/或图4中的目的设备410),用于进一步处理和/或视觉呈现给最终用户。
72.图6示出了示例性系统600,其包括和/或表示一系列计算设备202、网络设备206、计算设备208和计算设备610,它们对压缩视频比特流140执行某些编码和/或代码转换操作。如图6所示,计算设备202可以执行编码操作612,该编码操作涉及和/或需要生成第一代质量度量602。在一个示例中,网络设备206可以随后执行代码转换操作614,该代码转换操作614涉及和/或需要生成第二代质量度量604。在该示例中,计算设备208可以稍后执行代码转换操作616,该代码转换操作616涉及和/或需要生成第三代质量度量606。最后,计算设备610然后可以执行代码转换操作618,该代码转换操作618涉及和/或需要生成第四代质量度量608。尽管在图6中没有以这种方式示出,但是示例性系统600还可以包括目的设备,该目的设备对压缩视频比特流140进行解码,以便于根据第一代质量度量602、第二代质量度量604、第三代质量度量606和/或第四代质量度量608在显示设备上可视地呈现结果视频数据。
73.带内元数据可以以各种不同的方式和/或方案嵌入和/或应用于压缩视频比特流。例如,图7示出了示例性压缩视频比特流700,其表现出和/或展示了用于相对于彼此排列带内元数据144和视频数据142的特定标准。如图7所示,带内元数据144可以包括和/或表示第一代质量度量602和第二代质量度量604。在该示例中,带内元数据144可以被定位和/或嵌入在压缩视频比特流700内的视频数据142的前面和/或前头。换句话说,带内元数据144可以驻留在压缩视频比特流700的开头和/或前面位置,而视频数据142驻留在压缩视频比特流700的结尾和/或后面位置。
74.在另一示例中,图8示出了示例性压缩视频比特流800,其表现出和/或展示了用于相对于彼此排列带内元数据144和视频数据142的附加标准。如图8所示,带内元数据144可以包括和/或表示第一代质量度量602和第二代质量度量604。在该示例中,带内元数据144可以被定位和/或嵌入压缩视频比特流800内的视频数据142的后面和/或后头。换句话说,带内元数据144可以驻留在压缩视频比特流800的结尾和/或后面位置,而视频数据142驻留在压缩视频比特流800的开头和/或前面位置。
75.示例实施例
76.示例1:一种计算机实现的方法,包括(1)在计算设备处接收压缩视频比特流,该压缩视频比特流包括(a)视频数据和(b)指示压缩视频比特流的视频质量的带内元数据,(2)在计算设备处从压缩视频比特流中提取带内元数据,(3)至少部分地基于带内元数据确定压缩视频比特流的视频质量,然后(4)至少部分地基于压缩视频比特流的视频质量制定与压缩视频比特流相关的至少一个视频处理决策。
77.示例2:示例1的计算机实现的方法,还包括(1)根据视频处理决策处理压缩视频比特流中包括的视频数据,以及(2)提供经处理的视频数据用于在显示设备上的视觉呈现。
78.示例3:示例1的计算机实现的方法,其中带内元数据包括第一代质量度量,该第一
代质量度量表示在由第一编码操作编码时压缩视频比特流的视频质量,并且还包括(1)对压缩视频比特流执行代码转换操作,该代码转换操作包括(a)解码压缩视频比特流的解码操作和(b)重新编码压缩视频比特流的第二编码操作,(2)生成表示在由第二编码操作编码时压缩视频比特流的视频质量的第二代质量度量,(3)将第一代质量度量保留在压缩视频比特流中包括的带内元数据中,(4)将第二代质量度量嵌入压缩视频比特流中包括的带内元数据中,然后(5)将压缩视频比特流转发到附加的计算设备。
79.示例4:示例3的计算机实现的方法,其中将第二代质量度量嵌入带内元数据中包括(1)定位压缩视频比特流中的已经为带内元数据指定的带内位置,以及(2)在指定的带内位置处将第二代质量度量与第一代质量度量一起插入到压缩视频比特流中。
80.示例5:示例3的计算机实现的方法,其中将第二代质量度量嵌入带内元数据中包括以下中的至少一项:(1)将第一代质量度量和第二代质量度量前置到压缩视频比特流的开头,或者将第一代质量度量和第二代质量度量附加到压缩视频比特流的结尾。
81.示例6:示例1的计算机实现的方法,其中视频处理决策包括以下中的至少一项:(1)选择至少一个编码参数作为对压缩视频比特流中包括的视频数据执行的编码操作的一部分来应用,(2)选择至少一个解码参数作为对压缩视频比特流中包括的视频数据执行的解码操作的一部分来应用,或者(3)选择将压缩视频比特流传送到显示设备的特定比特率。
82.示例7:示例1的计算机实现的方法,其中从压缩视频比特流中提取带内元数据包括(1)在压缩视频比特流的指定部分中搜索带内元数据,并且在搜索期间,(2)在压缩视频比特流的指定部分识别带内元数据。
83.示例8:示例1的计算机实现的方法,还包括识别与计算设备相关联的显示设备的至少一个属性,并且其中制定与压缩视频比特流相关的视频处理决策包括至少部分地基于压缩视频比特流的视频质量和显示设备的属性来制定视频处理决策。
84.示例9:示例8的计算机实现的方法,其中(1)显示设备的属性包括显示设备的分辨率,以及(2)视频处理决策包括至少部分地基于显示设备的分辨率来选择将压缩视频比特流传送到显示设备的特定比特率。
85.示例10:示例8的计算机实现的方法,其中(1)显示设备的属性包括显示设备的分辨率,以及(2)视频处理决策包括响应于识别显示设备的分辨率,对包括在压缩视频比特流中的视频数据执行缩放操作,以使视频数据符合显示设备的分辨率。
86.示例11:示例1的计算机实现的方法,还包括在带内元数据中识别多代质量度量,所述多代质量度量表示在经历不同编码或解码操作之后压缩视频比特流的视频质量,并且其中确定压缩视频比特流的视频质量包括(1)计算跨多代质量度量的降级量,以及(2)至少部分地基于跨多代质量度量的降级量来确定压缩视频比特流的视频质量。
87.示例12:示例1的计算机实现的方法,还包括在带内元数据中识别多代质量度量,所述多代质量度量表示在经历不同编码或解码操作之后压缩视频比特流的视频质量,并且其中确定压缩视频比特流的视频质量包括(1)将多代质量度量彼此进行比较,以及(2)至少部分地基于该比较来确定压缩视频比特流的视频质量。
88.示例13:示例1的计算机实现的方法,其中带内元数据进一步指示压缩视频比特流的损伤,并且还包括在带内元数据中识别压缩视频比特流的损伤,并且其中制定与压缩视频比特流相关的视频处理决策包括至少部分地基于压缩视频比特流的视频质量和压缩视
频比特流的损伤来制定视频处理决策。
89.示例14:示例1的计算机实现的方法,其中带内元数据包括以下中的至少一个:(1)质量度量的名称,(2)质量度量的值,或者(3)指示质量度量是缩放的还是未缩放的缩放标志。
90.示例15:示例1的计算机实现的方法,其中带内元数据包括以下中的至少一个:(1)压缩视频比特流的峰值信噪比(psnr),(2)压缩视频比特流的结构相似性(ssim)指数,(3)压缩视频比特流的方差膨胀因子(vif),(4)压缩视频比特流的细节损失度量(dlm),(5)压缩视频比特流的视频多方法评估融合(vmaf)值,(6)压缩视频比特流的多尺度ssim(ms

ssim)指数,(7)压缩视频比特流的运动调谐视频完整性评估(movie)指数,(8)压缩视频比特流的视频质量度量(vqm),(9)压缩视频比特流的盲/无参考图像空间质量评估器(brisque)值,(10)压缩视频比特流的基于特征图的无参考图像质量评估引擎(friquee)值,或者(11)压缩视频比特流的块效应指示符。
91.示例16:一种系统,包括(1)存储在存储器中的接收模块,该接收模块接收压缩视频比特流,该压缩视频比特流包括(a)视频数据和(b)指示压缩视频比特流的视频质量的带内元数据,(2)存储在存储器中的提取模块,该提取模块从压缩视频比特流中提取带内元数据,(3)存储在存储器中的确定模块,该确定模块至少部分地基于带内元数据来确定压缩视频比特流的视频质量,(4)存储在存储器中的决策制定模块,该决策制定模块至少部分地基于压缩视频比特流的视频质量制定与压缩视频比特流相关的至少一个视频处理决策,以及(5)至少一个物理处理器,该物理处理器被配置为执行接收模块、提取模块、确定模块和决策制定模块。
92.示例17:示例16的系统,还包括(1)存储在存储器中的处理模块,该处理模块根据视频处理决策来处理压缩视频比特流中包括的视频数据,以及(2)存储在存储器中的呈现模块,该呈现模块提供经处理的视频数据用于在显示设备上的视觉呈现,并且其中物理处理器还被配置为执行处理模块和呈现模块。
93.示例18:示例16的系统,其中带内元数据包括第一代质量度量,该第一代质量度量表示在由第一编码操作编码时压缩视频比特流的视频质量,并且还包括(1)存储在存储器中的处理模块,该处理模块对压缩视频比特流执行代码转换操作,该代码转换操作包括(a)解码压缩视频比特流的解码操作和(b)重新编码压缩视频比特流的第二编码操作,(2)存储在存储器中的生成模块,该生成模块生成表示在由第二编码操作编码时压缩视频比特流的视频质量的第二代质量度量,(3)存储在存储器中的元数据模块,该元数据模块(a)将第一代质量度量保留在压缩视频比特流中包括的带内元数据中,以及(b)将第二代质量度量嵌入压缩视频比特流中包括的带内元数据中,以及(4)存储在存储器中的转发模块,该转发模块将压缩视频比特流转发到附加的计算设备。
94.示例19:示例16的系统,其中,为了将第二代质量度量嵌入带内元数据中,元数据模块(1)定位压缩视频比特流中的已经为带内元数据指定的带内位置,以及(2)在指定的带内位置处将第二代质量度量与第一代质量度量一起插入到压缩视频比特流中。
95.示例20:一种包括计算机可读指令的非暂时性计算机可读介质,当由计算设备的至少一个处理器执行时,所述计算机可读指令使得计算设备(1)接收压缩视频比特流,该压缩视频比特流包括(a)视频数据和(b)指示压缩视频比特流的视频质量的带内元数据,(2)
从压缩视频比特流中提取带内元数据,(3)至少部分地基于带内元数据来确定压缩视频比特流的视频质量,然后(4)至少部分地基于压缩视频比特流的视频质量,制定与压缩视频比特流相关的至少一个视频处理决策。
96.在某些实施例中,本文描述的一个或更多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换成另一种形式。例如,本文所述的一个或更多个模块可以在计算设备处接收包括视频数据和指示压缩视频比特流的视频质量的带内元数据的压缩视频比特流,并且对压缩视频比特流执行解码和/或代码转换操作,使得视频数据从编码版本转换为解码版本。附加地或可替代地,本文所述的一个或更多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换成另一种形式。
97.在一些实施例中,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质(例如,载波)以及非暂时性类型的介质,例如,磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(cd)、数字视频盘(dvd)和blu

ray盘)、电子存储介质(例如,固态驱动器和闪存介质)以及其他分发系统。
98.本公开的实施例可以包括人工现实系统或者结合人工现实系统来实现。人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混杂现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与捕获的(例如,真实世界)内容相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,它们中的任何一个都可以在单个通道中或在多个通道中呈现(例如向观看者产生三维效果的立体视频)。此外,在一些实施例中,人工现实还可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合用于例如在人工现实中创建内容和/或在人工现实中以其他方式被使用(例如以在人工现实中执行活动)。可以在各种平台(包括连接到主计算机系统的头戴式显示器(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台)上实现提供人工现实内容的人工现实系统。
99.本文描述和/或示出的过程参数和步骤的顺序仅作为示例被给出,并且可以根据需要变化。例如,虽然本文示出和/或描述的步骤可以以特定顺序示出或讨论,但是这些步骤不一定需要以所示出或讨论的顺序执行。本文描述和/或示出的各种示例性方法也可以省略在本文描述或示出的一个或更多个步骤,或者包括除了那些所公开的步骤之外的附加步骤。
100.提供前面的描述以使本领域中的其他技术人员能够最好地利用本文公开的示例性实施例的各个方面。该示例性描述并不旨在是穷尽的或受限于所公开的任何精确形式。在不背离本公开的精神和范围的情况下,许多修改和变化是可能的。本文公开的实施例应该被认为在所有方面都是说明性的,而不是限制性的。在确定本公开的范围时,应参考所附权利要求及其等同形式。
101.除非另有说明,否则如在说明书和权利要求中使用的术语“连接到”和“耦合到”(及其派生词)应被解释为允许直接和间接(即,经由其他元件或部件)连接。此外,如在说明书和权利要求中使用的术语“一个(a)”或“一个(an)”应被解释为意指“......中的至少一
个”。最后,为了容易使用,如在说明书和权利要求中使用的术语“包括(including)”和“具有”(及其派生词)与词“包括(comprising)”可互换并具有与词“包括(comprising)”相同的含义。
再多了解一些

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

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

相关文献