CN112313951A - 低延迟视频编码和传输的速率控制 - Google Patents

低延迟视频编码和传输的速率控制 Download PDF

Info

Publication number
CN112313951A
CN112313951A CN201980040176.0A CN201980040176A CN112313951A CN 112313951 A CN112313951 A CN 112313951A CN 201980040176 A CN201980040176 A CN 201980040176A CN 112313951 A CN112313951 A CN 112313951A
Authority
CN
China
Prior art keywords
slice
frequency
complexity
bands
encoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980040176.0A
Other languages
English (en)
Inventor
潘昊
J·C·周
F·C·费尔南德斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN112313951A publication Critical patent/CN112313951A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

一种视频编码系统,其中在编码之前将像素数据分解成频带。可以缓冲帧的条带的该频带,使得可以在编码之前计算频带上的复杂性统计值。该统计值然后可由速率控制部件用于确定该频带的量化参数,以用于调制编码器中的针对当前条带的速率。可以联合地计算频带的量化参数,以在接收设备上的解码器重构和小波合成之后优化所显示的帧的质量。关于一个或多个先前处理的帧的信息可与当前条带的统计值结合用于确定该当前条带的该量化参数。

Description

低延迟视频编码和传输的速率控制
背景技术
虚拟现实(VR)允许用户体验和/或与沉浸式人工环境进行交互,使得用户感觉他们好像身处于该环境中。例如,虚拟现实系统可向用户显示立体场景以产生深度错觉,并且计算机可实时调整场景内容以提供用户在场景内移动的错觉。当用户通过虚拟现实系统观看图像时,用户可因此感觉他们好像正从第一人称视角在场景内移动。类似地,混合现实(MR)将计算机生成的信息(称为虚拟内容)与真实世界图像或真实世界视图组合,以增强用户的世界视图或向用户的世界视图添加内容,或者另选地将真实世界对象的虚拟表示与三维(3D)虚拟世界的视图组合。因此,虚拟现实的模拟环境和/或混合现实的混合环境可用于为多种应用提供交互式用户体验。
发明内容
描述了视频编码系统的各种实施方案,该视频编码系统可以以低延迟来编码高分辨率视频源以通过通信链路(例如,无线链路)传输到设备以用于解码和显示。该视频编码系统的实施方案还可提供被传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。该视频编码系统的示例性应用是在虚拟或混合现实系统中,其中包含虚拟内容的视频帧由基站渲染、编码并传输到设备(例如,笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话或头戴式显示器(HMD),诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)以用于解码和显示。
在一些实施方案中,该视频编码系统可以在编码之前对像素数据执行小波变换,以将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。然后将编码的频率数据发送至无线接口,该无线接口对编码的频率数据进行分组并将分组传输至接收设备。在接收设备上,该编码数据被解分组并传递通过基于块的解码器以恢复频带。然后对所恢复的频带执行小波合成以重构像素数据以用于显示。
该视频编码系统可实现各种方法和装置,以维持通过无线链路的目标帧速率,并使帧渲染、传输和显示的延迟最小化,并且提供被传输到设备的编码视频的适度降级,以在变化条件(诸如无线连接的信道容量的变化)下维持期望的帧速率。
实现视频编码系统的实施方案的系统的目标可以是在基站上渲染虚拟内容的时间和在设备上显示该虚拟内容的时间之间提供非常低的延迟(例如,4毫秒-5毫秒),同时使错误(例如,丢弃分组)最小化并使通过无线连接的带宽使用最大化。该视频编码系统的实施方案可实现速率控制方法,以在对要通过无线连接传输到设备的数据进行编码时帮助实现该系统的目标低延迟。
在一些实施方案中,该视频编码系统包括:执行二层小波分解的小波变换部件,该二层小波分解将来自帧的条带的像素块分解成多个不同的频带;以及基于块的编码器,诸如编码该频带的HEVC。在一些实施方案中,为了在VR/MR系统的严格延迟要求下执行速率控制,速率控制部件可针对每个条带调整编码器参数(例如,频带的量化参数),而不是就一个帧或两个帧的时间常数进行工作来调整编码器参数。在一些实施方案中,可以在小波变换之后在局部存储器中缓冲条带的频带,使得可以在编码之前计算该频带上的复杂性统计值,例如通过视频编码系统的复杂性分析部件。在一些实施方案中,复杂性统计值可包括但不限于CTU块的像素梯度和大小方差中的一者或多者。该复杂性统计值然后可由速率控制部件用于确定该频带的量化参数,以用于调制编码器中的针对当前条带的速率。对缓冲的频带计算复杂性统计值允许该视频编码系统在编码条带之前估计条带中的复杂性程度。
在一些实施方案中,该速率控制部件可检查一个或多个先前处理的帧的统计值,以确定用于对该帧的共址(co-sited)块或条带进行编码的实际比特数。然后,该信息可与当前条带的复杂性统计值结合用于确定当前条带的量化参数。
在一些实施方案中,可以联合地计算频带的量化参数,以在设备上执行解码器重构和小波合成之后优化该帧的总体显示质量。用于频带之间的速率分配的方法是在频带中的每个频带中找到导致操作速率失真曲线上的相等斜率的操作点。在一些实施方案中,可以使用来自编码器管线的熵编码阶段的统计值的组合来估计操作速率失真曲线,其中事实是系数的速率可以非常地近似于量化参数步长6。
在一些实施方案中,在图像(例如,中心凹区域)内可存在应具有比相同图像中的周围区域(例如,周边区域)更高的分辨率的感兴趣区域。在一些实施方案中,来自先前帧的复杂性统计值连同来自先前帧的中心凹区域可被存储并用于计算当前帧的条带中的频带的量化参数。例如,对于要编码的每个块,先前帧的中心凹区域可用于调制为先前帧计算的复杂性统计值。然后,除了为当前帧的条带计算的复杂性统计值之外,还可以使用所得的复杂性统计值来确定该量化参数。
在一些实施方案中,速率控制部件可在块级而不是在条带级调整编码器参数(例如,频带或优先级的量化参数)。在一些实施方案中,可以计算条带的每个块的复杂性统计值,并且可以确定该块的量化参数。
附图说明
图1是示出根据至少一些实施方案的在编码之前使用小波变换将像素数据分解成频带的视频编码系统的框图。
图2示出了根据至少一些实施方案的包括并行处理来自帧的图块的多个编码器的视频编码系统。
图3A示出了根据至少一些实施方案的被分成条带(slice)和图块(tile)的示例性帧。
图3B示出了根据至少一些实施方案的被分成块的示例性图块。
图3C示出了根据至少一些实施方案的对存储像素数据的像素块执行小波变换以在编码之前生成频带数据。
图4是根据至少一些实施方案的用于如图1和图2所示的包括视频编码系统的VR/MR系统的操作的方法的高级流程图。
图5是根据至少一些实施方案的用于如图1所示的视频编码系统的操作的方法的流程图。
图6是根据至少一些实施方案的用于如图2所示的视频编码系统的操作的方法的流程图。
图7是根据至少一些实施方案的示出如图1或图2中所示的视频编码系统的框图,其中计算得出频带的复杂性统计值并用于生成量化参数以用于编码。
图8是根据至少一些实施方案的用于如图7所示的视频编码系统的操作的方法的流程图。
图9示出了根据至少一些实施方案的可实现视频编码系统的示例性VR/MR系统。
图10是根据至少一些实施方案的示出如图9所示的VR/MR系统的部件的框图。
本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
“包括”,该术语是开放式的。如在权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元…的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35U.S.C.§112的第六段。此外,“被配置为”可包括由软件或固件(例如,FPGA或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
“基于”或“取决于”,如本文所用,这些术语用于描述影响确定的一个或多个因素。这些术语不排除可影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于B来确定A”。在这种情况下,B为影响A的确定的因素,此类短语不排除A的确定也可基于C。在其他实例中,可仅基于B来确定A。
“或”,在权利要求书中使用时,术语“或”被用作包含性的或,而不是排他性的或。例如,短语“x、y或z中的至少一个”表示x、y和z中的任何一个以及它们的任何组合。
具体实施方式
描述了视频编码系统的各种实施方案。该视频编码系统的实施方案可以以低延迟来编码高分辨率视频源以通过通信链路(例如,无线链路)传输到设备以用于解码和显示。该视频编码系统的实施方案还可提供被传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。
该视频编码系统的示例性应用是在虚拟或混合现实系统中,其中包含虚拟内容的视频帧被渲染、编码并传输到设备以用于解码和显示。描述了虚拟或混合现实系统(本文称为VR/MR系统)的实施方案,其中可以实现视频编码系统的实施方案。在一些实施方案中,VR/MR系统可包括设备(例如,平板电脑或平板设备、智能电话、或由用户佩戴的头戴式耳机、头盔、护目镜或眼镜,在本文中称为头戴式显示器(HMD)),以及单独的计算设备,在本文中称为基站。在一些实施方案中,设备和基站可各自包括无线通信技术,该无线通信技术允许设备和基站经由无线连接来通信和交换数据。在一些实施方案中,设备可包括收集关于用户的环境的信息(例如,视频、深度信息、照明信息等)和关于用户的信息(例如,用户的表情、眼睛移动、手势等)的传感器。由传感器收集的信息可经由无线连接传输至基站。基站可包括软件和硬件(例如,处理器(片上系统(SOC)、CPU、图像信号处理器(ISP)、图形处理单元(GPU)、编码器/解码器(编解码器)等)、存储器等),该软件和硬件被配置为至少部分地基于经由无线连接从设备接收的传感器信息来生成和渲染包括虚拟内容的帧。基站还可包括如本文所述的视频编码系统的实施方案,该视频编码系统可预滤波、压缩所渲染的帧并将其传输到设备以用于经由无线连接进行显示。
在一些实施方案中,VR/MR系统可实现在设备和基站之间提供高度定向无线链路的专有无线通信技术。在一些实施方案中,无线通信技术的定向性和带宽可支持同时与基站通信的多个设备,从而使得多个用户能够同时在协同定位的环境中使用该系统。然而,在一些实施方案中,可支持其它商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。
在无线链路上要考虑的主要约束包括带宽和延迟。VR/MR系统的目标是在帧速率下提供高分辨率、宽视场(FOV)虚拟显示以向用户提供高质量VR/MR视图。另一个目标是使基站渲染帧的时间与设备显示帧的时间之间的延迟最小化。然而,无线链路的信道容量可随时间而变化,并且因此无线链路可仅支持在任何给定时间传输的特定量的信息。
本文描述了各种方法和装置,这些方法和装置可由视频编码系统实现以维持通过无线链路的目标帧率并且最小化帧渲染、传输和显示中的延迟。此外,该方法和装置可提供传输到设备的编码视频的适度降级,以在变化条件(诸如通信链路的信道容量的变化)下维持期望的帧速率。
在一些实施方案中,视频编码系统可以在编码之前对像素数据执行小波变换,以将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,然后可以将该频率数据块发送到编码器(例如,高效视频编码(HEVC)编码器)以进行编码。然后将编码的频率数据发送至无线接口,该无线接口对编码的频率数据进行分组并将该分组传输至接收设备(例如,HMD、平板电脑或平板设备、智能电话等)。在接收设备上,编码数据被解分组并传递通过基于块的解码器以恢复频带。然后对所恢复的频带执行小波合成以重构像素数据以用于显示。
虽然总体上描述了其中小波变换是应用于来自视频帧的每个像素块的两级小波分解的实施方案,但是在各种实施方案中,小波分解可以是任意数量的级别(例如,一个级别、两个级别、三个级别、四个级别等),并且可以进行调整以权衡编码图像的质量与要编码的块的复杂性。
在一些实施方案中,视频编码系统可以执行基于条带的渲染、编码和传输。渲染、编码和传输整个帧可具有延迟和存储器影响,因为每个帧需要被完成、存储,然后被传输至VR/MR系统的下一阶段。在基于条带的渲染中,基站可渲染并编码帧的部分(称为条带)并且在编码的条带准备好时将该编码的条带传输至设备,而不是在基站中渲染和编码整个帧并将渲染的帧传输至设备。条带可以例如是一行128×128块,或者是两行或更多行块。基于条带的渲染和编码可有助于减少延迟,并且还可减少缓冲所需的内存量,这可减少芯片或处理器上的内存占用量以及功率需求。
在一些实施方案中,视频编码系统可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个条带可被分成多个图块(例如,四个图块),并且基站可渲染和编码图块并在编码的图块准备好时将其传输到设备。
在一些实施方案中,视频编码系统可以使用单个编码器执行基于图块的编码以处理来自每个条带的图块。然而,在一些实施方案中,视频编码系统可使用多个编码器来执行基于图块的编码以处理来自每个条带的相应图块。例如,在一些实施方案中,每个条带可被分成四个图块,每个图块包括多个128×128块,并且两个编码器(e0和e1)可对来自每个条带的两个图块进行操作(例如,e0对t0和t1进行操作;e1对t2和t3进行操作)。每个编码器可在其两个图块之间多路复用来自不同频带的块的处理,以允许来自相同频带的块的处理之间的16个时间单位。通过多路复用两个图块之间的块的处理,可以适当地处理频带中的块之间的依赖性。虽然描述了其中每个条带被分成四个图块并且两个编码器对来自每个条带的相应图块进行操作的实施方案,但是在一些实施方案中,条带可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个或四个编码器)。
在一些实施方案中,视频编码系统可以在小波变换之前对帧中的像素数据执行预滤波。例如,预滤波可在执行小波变换、编码以及通过无线链路到设备的帧传输之前减小由基站渲染的帧的分辨率,这可帮助改善压缩,并且可减少无线链路上的延迟和带宽使用。
在设备是HMD的一些实施方案中,预滤波可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行该透镜翘曲以校正由透镜在HMD上引入的图像的失真(通过该HMD观察图像),从而改善图像的质量。在一些实施方案中,HMD可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该HMD的透镜翘曲数据对帧执行透镜翘曲。在常规VR/MR系统中,在解码之后和显示之前,对HMD执行透镜翘曲。在预滤波器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预滤波器阶段中对基站执行透镜翘曲而不是在解码之后对HMD执行透镜翘曲,图像数据的滤波可能仅需要执行一次,这与在编码之前对基站执行滤波以降低分辨率以及然后对HMD执行透镜翘曲滤波相反。
在一些实施方案中,预滤波可包括滤波以降低外围区域中的分辨率,同时维持中心凹区域中的较高分辨率。在该方法中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。人眼在中心凹区域中可感知到比在外围区域中高的分辨率。因此,帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。在一些实施方案中,可基于对人类视觉系统的了解来预滤波外围区域(即,帧的在中心凹区域之外的部分)以减少信息,例如通过滤波高频信息和/或增加色彩压缩。在一些实施方案中,应用于外围区域的滤波的量可增加朝向帧的周边延伸。外围区域的预滤波可有助于提供改进的帧压缩。
图1是示出根据至少一些实施方案的在编码之前使用小波变换将像素数据分解成频带的视频编码系统120的框图。VR/MR系统10可包括至少一个设备150(例如,平板电脑或平板设备、智能电话、或HMD,诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)和计算设备100(本文称为基站)。基站100渲染包括虚拟内容的VR帧或MR帧,对帧进行编码,并且通过无线连接180将编码的帧传输到设备150以供设备150解码和显示。
在一些实施方案中,设备150可包括收集关于用户190的环境的信息(例如,视频、深度信息、照明信息等)和关于用户190的信息(例如,用户的表情、眼睛移动、注视方向、手势等)的传感器160。设备150可经由无线连接180将由传感器160收集的信息中的至少一些信息传输到基站100。该基站100可至少部分地基于从传感器160获得的各种信息来渲染包括虚拟内容的供设备150显示的帧,编码该帧,并且经由无线连接180将编码的帧传输至设备150以供解码和向用户显示。
基站100和设备150可实现允许基站100和设备150经由无线连接180通信并交换数据的无线通信技术。在一些实施方案中,可根据在设备150和基站100之间提供高度定向无线链路的专有无线通信技术来实现无线连接180。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。
VR/MR系统10中的设备150和基站100之间的无线连接180上要考虑的主要约束包括带宽和延迟。例如,在一些实施方案中,目标是以为用户提供高质量VR/MR视图的帧速率来向用户提供高分辨率、宽视场(FOV)虚拟显示。另一个目标是使设备捕获视频帧的时间与设备显示基于视频帧的渲染VR/MR帧的时间之间的延迟最小化。
基站100可包括如本文所述的用于渲染、滤波、编码和传输视频和/或图像的各种硬件部件,例如各种类型的处理器、集成电路(IC)、中央处理单元(CPU)、图形处理单元(GPU)、图像信号处理器(ISP)、编码器/解码器(编解码器)等。基站100可包括但不限于GPU渲染110部件、无线接口130部件、以及视频编码系统120,该视频编码系统可包括实现各种方法的一个或多个硬件部件,这些方法可有助于维持通过无线连接180的目标帧速率并使帧渲染、编码、传输和显示的延迟最小化。视频编码系统120可包括但不限于预滤波器122部件(例如,N信道滤波器组)、小波变换124部件和编码器126部件。
GPU渲染110可包括可渲染帧以供设备150显示的一个或多个硬件部件,该硬件部件包括至少部分地基于从传感器160获得的各种信息的虚拟内容。
在一些实施方案中,视频编码系统120可以包括在执行小波变换124之前预滤波122渲染帧中的像素数据的一个或多个硬件部件。预滤波器122可例如在执行小波变换124、编码126以及通过无线连接180到设备150的传输之前减小在基站100上渲染的帧的分辨率,这可帮助改善压缩,并且可减少无线连接180上的延迟和带宽使用。
在一些实施方案中,预滤波器122可在小波变换124之前对基站100上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备150可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接180将透镜翘曲数据提供给基站100。然后,视频编码系统120的预滤波器122部件可以基于该设备150的透镜翘曲数据对帧执行透镜翘曲。在常规VR/MR系统中,在解码之后和显示之前,对设备150执行透镜翘曲。在预滤波器122阶段中对基站100执行透镜翘曲可在执行小波变换124和编码126之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线连接180上的延迟和带宽使用。此外,通过在预滤波器122阶段中对基站100执行透镜翘曲而不是在解码之后对设备150执行透镜翘曲,图像数据的滤波可能仅需要执行一次,这与在编码126之前对基站100执行滤波以降低分辨率以及然后对设备150执行透镜翘曲滤波相反。
在一些实施方案中,预滤波器122还可以应用一个或多个滤波器以降低外围区域中的分辨率,同时维持中心凹区域中的较高分辨率。在该方法中,从设备150获得的注视跟踪信息可用于识别用户当前正在查看的方向。人眼在中心凹区域中可感知到比在外围区域中高的分辨率。因此,帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。在一些实施方案中,可基于对人类视觉系统的了解预滤波外围区域(即,帧的在中心凹区域之外的部分)来减少信息,例如通过滤波高频信息和/或增加色彩压缩。在一些实施方案中,应用于外围区域的滤波的量可增加朝向帧的周边延伸。外围区域的预滤波可有助于提供改进的帧压缩。
在一些实施方案中,视频编码系统120的小波变换124部件可包括一个或多个硬件部件(例如,N信道滤波器组),该一个或多个硬件部件在编码之前对像素数据执行小波变换以将像素数据分解成频带。然后将频带组织成块,该块提供给基于块的编码器126以用于编码/压缩。作为示例,如图3A至图3C所示,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,然后可以将该频率数据块发送到基于块的编码器(例如,高效视频编码(HEVC)编码器)126以进行编码。然后将编码的频率数据发送至由一个或多个硬件部件实现的无线接口130,该无线接口对数据进行分组并通过无线连接180将分组传输到设备150。
设备150可包括如本文所述的用于解码和显示视频和/或图像的各种硬件部件,例如各种类型的处理器、集成电路(IC)、中央处理单元(CPU)、图形处理单元(GPU)、图像信号处理器(ISP)、编码器/解码器(编解码器)等。设备150可以包括但不限于无线接口152、解码器154部件(例如,高效视频编码(HEVC)解码器)、小波合成156部件和显示器158部件。在设备150上,无线接口152接收由基站100通过无线连接180传输的分组。编码数据被解分组并传递通过基于块的解码器154(例如,高效视频编码(HEVC)解码器)以恢复频带。然后对所恢复的频率数据执行小波合成156以重构像素数据以用于显示158。
在一些实施方案中,视频编码系统120可以执行基于条带的渲染、编码和传输。渲染、编码和传输整个帧可具有延迟和存储器影响,因为每个帧需要被完成、存储,然后被传输至VR/MR系统10的下一阶段。在基于条带的渲染中,基站100可渲染并编码帧的部分(称为条带)并且在编码的条带准备好时将该编码的条带传输至设备150,而不是在基站100中渲染和编码整个帧并将渲染的帧传输至设备150。条带可以例如是一行128×128块。基于条带的渲染和编码可有助于减少延迟,并且还可减少缓冲所需的内存量,这减少芯片或处理器上的内存占用量以及功率需求。
在一些实施方案中,视频编码系统120可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个条带可被分成多个图块(例如,四个图块),并且基站100可渲染和编码图块并在编码的图块准备好时将其传输到设备150。
在一些实施方案中,视频编码系统120可以使用单个编码器126执行基于图块的渲染、编码和传输,以处理来自每个条带的图块。然而,在一些实施方案中,视频编码系统120可使用多个编码器126来执行基于图块的编码以处理来自每个条带的相应图块。图2示出了根据至少一些实施方案的包括并行处理来自渲染帧的图块的多个编码器(在该示例中为两个编码器226A和226B)的视频编码系统220。
基站200的GPU渲染210部件可包括一个或多个GPU和/或渲染帧(或帧条带)以用于显示的其他部件。帧可被分成条带,例如如图3A所示。如图3A所示,每个条带可被分成多个图块(在该示例中为四个),每个图块包括多个块。图3B示出了包括四个128×128块的示例性图块。然而,在一些实施方案中可使用其他大小(例如,64×64、32×32等)的块,并且图块可包括更多或更少的块。
然后,视频编码系统220的预滤波器222和小波变换224部件可以在编码226之前处理每个图块。在一些实施方案中,视频编码系统220可以包括用于处理每个图块的单独的预滤波器222部件和小波变换224部件。在该示例中,预滤波器222A部件和小波变换224A部件处理图块0,预滤波器222B部件和小波变换224B部件处理图块1,预滤波器222C部件和小波变换224C部件处理图块2,并且预滤波器222D部件和小波变换224D部件处理图块3。预滤波器222部件执行如本文所述的图块的预滤波,并且小波变换224部件将图块分解成如本文所述的频带。然而,在一些实施方案中,视频编码系统220可包括处理图块的单个预滤波器222部件和单个小波变换224部件。在一些实施方案中,视频编码系统220可包括多个(例如,2个)预滤波器222部件和多个(例如,2个)小波变换224部件,每个小波变换部件处理多个(例如,2个)图块。
两个编码器226A和226B可对来自每个条带的两个图块进行操作(例如,编码器226A对图块0和图块1进行操作;编码器226B对图块2和图块3进行操作)。每个编码器226可在其两个图块之间多路复用来自不同频带的块(即,在图3C中示出的16个32×32块)的处理,以允许来自相同频带的块的处理之间的16个时间单位。通过多路复用两个图块之间的块的处理,可以适当地处理相同频带中的块之间的依赖性。
虽然描述了其中每个条带被分成四个图块并且两个编码器对来自每个条带的相应图块进行操作的实施方案,但是在一些实施方案中,条带可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个、四个或更多个编码器)。
图3C示出了根据至少一些实施方案的对存储像素数据的像素块执行小波变换以在编码之前生成频带数据。在该示例中,通过小波变换324部件对128×128像素块300应用两级小波分解,以生成表示七个频带的十六个32×32频率数据块302。然后将频率块302提供给编码器326以用于编码。例如,频率块302可以由小波变换324部件写入缓冲器,并由编码器326部件从缓冲器读取。
在频率块302的标签中,字母L表示低通滤波器,并且字母H表示高通滤波器。标有两个字母的块302表示一级(2D)小波变换或分解。在标记有两个字母(表示七个频带LH、HL和HH中的三个频带)的块302中,第一字母表示首先执行的竖直滤波器(高或低),并且第二字母表示其次执行的水平滤波器(高或低)。标有四个字母的块302表示二级小波变换或分解。在标记有四个字母的块302中,前两个字母(LL)指示首先存在竖直低通滤波器,然后是水平低通滤波器;后两个字母指示然后对所得LL块进行四路滤波,LL、LH、HL和HH(从而示出七个频带中的四个频带(LLLL、LLLH、LLHL和LLHH)。
将像素数据分解成如图3C所示的频带允许编码器326将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器326部件多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在块处理管线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于管线的不同阶段,并且该块随着该时钟周期移动通过管线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用频带数据流的处理,编码器326将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在管线中的给定块之前若干阶段。这允许编码器326更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待管线中的相邻块的处理完成的需要。
此外,如图3C所示,将像素数据分解成频带允许由编码器326和无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器326和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器326和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。
如上所述,小波变换将图像分解成频带。在一些实施方案中,这可用于将相同的信号发送到具有不同分辨率的显示器。作为示例,假设应用二级小波分解将信号分解成七个频带。如果发送了频带中的四个频带(LLLL、LLLH、LLHL和LLHH),则频带可按较小的视觉质量被重构至初始预期分辨率。作为另外一种选择,频带也可以以1/4分辨率(每个维度1/2)重构,这可适用于具有较小显示分辨率的显示面板。
图4是根据至少一些实施方案的用于如图1和图2所示的包括视频编码系统的VR/MR系统的操作的方法的高级流程图。如400处所指示,设备通过无线连接将数据发送至基站。如410处所指示,基站至少部分地基于设备数据来渲染包括虚拟内容的帧。如420处所指示,基站压缩渲染的数据并通过无线连接将压缩的数据发送至设备。如430处所指示,设备解压缩并显示虚拟内容以生成3D虚拟视图以供用户查看。如从430返回到400的箭头所指示,只要用户正在使用VR/MR系统,该方法就继续。
在一些实施方案中,基站可渲染并编码帧的部分(称为条带)并且在编码的条带准备好时将该编码的条带传输至设备,而不是在基站中渲染和编码整个帧并将渲染的帧传输至设备。条带可以例如是一行128×128块。在一些实施方案中,视频编码系统可以执行基于图块的渲染、编码和传输。在基于图块的渲染、编码和传输中,每个条带可被分成多个图块,每个图块包括一个或多个块(例如,四个图块,每个图块包括四个块),并且基站可渲染和编码图块并在编码的图块准备好时将其传输到设备。
图5是根据至少一些实施方案的用于如图1所示的视频编码系统的操作的方法的流程图。图5的方法可例如在图4的420处执行。图5的方法假定正在执行基于条带的编码和传输。然而,在一些实施方案中,可执行基于图块的编码和传输。
如510处所指示,预滤波器部件将透镜翘曲和/或中心凹滤波器应用于帧的条带中的像素块。在一些实施方案中,预滤波可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该设备的透镜翘曲数据对帧执行透镜翘曲。在预滤波器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预滤波器阶段中对基站执行透镜翘曲而不是在解码之后对设备执行透镜翘曲,图像数据的滤波可能仅需要执行一次,这与在编码之前对基站执行滤波以降低分辨率以及然后对设备执行透镜翘曲滤波相反。
在一些实施方案中,510处的预滤波还可包括滤波以降低外围区域中的分辨率,同时维持中心凹区域中的较高分辨率。在一些实施方案中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预滤波外围区域(即,帧的在中心凹区域之外的部分)来减少信息,例如通过滤波高频信息和/或增加色彩压缩。外围区域的预滤波可有助于提供改进的帧压缩。
如520处所指示,小波变换部件将小波变换技术应用于像素块以将像素数据分解成N个(例如,7个)频带。然后将频带组织成块,该块提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,例如如图3C所示。
如530处所指示,编码器将编码技术应用于块中的频带以压缩数据。编码器可例如为高效视频编码(HEVC)编码器。然而,在一些实施方案中,可使用其他编码技术。如元素520处所指示,将像素数据分解成频带允许编码器将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器部件多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在管线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于管线的不同阶段,并且该块随着该时钟周期移动通过管线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用流的处理,编码器将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在管线中的给定块之前若干阶段。这允许编码器更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待管线中的相邻块的处理完成的需要。
如540处所指示,无线接口对压缩数据进行分组,并通过无线连接将分组发送至设备。
如元素520处所指示,将像素数据分解成频带允许在元素530处由编码器对频带进行优先化,并且在元素540处由无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。
在550处,如果存在待编码和传输的更多条带,则该方法返回到元素510以处理下一个条带。否则,在560处,如果存在要编码和传输的更多帧,则该方法返回到元素510以开始处理下一个帧。
图6是根据至少一些实施方案的用于如图2所示的视频编码系统的操作的方法的流程图。图6的方法可例如在图4的420处执行。在图6的方法中,视频编码系统可使用多个编码器来执行基于图块的编码以处理来自每个条带的相应图块。
如600处所指示,渲染引擎渲染包括多个图块(在该示例中为四个图块)的条带,每个图块包括多个像素块(在该示例中为四个128×128像素块)。
如610处所指示,预滤波器部件将透镜翘曲和/或中心凹滤波器应用于条带。在一些实施方案中,预滤波可以包括在小波变换之前对基站上的帧执行透镜翘曲。执行透镜翘曲以校正由透镜在设备上引入的图像的失真(通过该设备观察图像),从而改善图像的质量。在一些实施方案中,设备可存储例如通过校准过程生成的透镜的透镜翘曲数据,并且可通过无线连接将透镜翘曲数据提供给基站。然后,基站可基于该设备的透镜翘曲数据对帧执行透镜翘曲。在预滤波器阶段中对基站执行透镜翘曲可在执行小波变换和编码之前降低帧的分辨率,这可有助于改善压缩,并且可减少无线链路上的延迟和带宽使用。此外,通过在预滤波器阶段中对基站执行透镜翘曲而不是在解码之后对设备执行透镜翘曲,图像数据的滤波可能仅需要执行一次,这与在编码之前对基站执行滤波以降低分辨率以及然后对设备执行透镜翘曲滤波相反。
在一些实施方案中,610处的预滤波还可包括滤波以降低外围区域中的分辨率,同时维持中心凹区域中的较高分辨率。在一些实施方案中,由设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预滤波外围区域(即,帧的在中心凹区域之外的部分)来减少信息,例如通过滤波高频信息和/或增加色彩压缩。外围区域的预滤波可有助于提供改进的帧压缩。
在一些实施方案中,视频编码系统可包括处理图块的单个预滤波器部件。在一些实施方案中,视频编码系统可包括用于处理每个图块的单独预滤波器部件。在一些实施方案中,视频编码系统可包括各自处理多个(例如,2个)图块的多个(例如,2个)预滤波器部件。
如620处所指示,小波变换部件将小波变换技术应用于条带中的像素块以将像素数据分解成N个(例如,7个)频带。然后将频带组织成块(例如,CTU),该块可提供给基于块的编码器以用于编码/压缩。作为示例,帧可以被分成128×128块,并且可以将两级小波分解应用于每个128×128块以生成表示七个频带的16个32×32频率数据块,例如如图3C所示。
在一些实施方案中,视频编码系统可以包括处理图块的单个小波变换部件。在一些实施方案中,视频编码系统可以包括用于处理每个图块的单独小波变换部件。在一些实施方案中,视频编码系统可包括各自处理多个(例如,2个)图块的多个(例如,2个)小波变换部件。
在图6的方法中,示例性视频编码系统包括两个编码器,这两个编码器被配置为对来自并行在元素620处生成的条带中的不同条带的频率数据块进行编码。例如,第一编码器可被配置为对来自条带0和条带1的块进行编码,并且第二编码器可被配置为对来自条带2和条带3的块进行编码。如630A处所指示,第一编码器将编码技术应用于图块0和图块1的块中的频带,从而多路复用来自两个不同图块之间的不同频带的块的处理。如630B处所指示,第二编码器将编码技术应用于图块2和图块3的块中的频带,从而多路复用来自两个不同图块之间的不同频带的块的处理。
编码器可例如为高效视频编码(HEVC)编码器。然而,在一些实施方案中,可使用其他编码技术。如元素620处所指示,将像素数据分解成频带允许编码器在元素630A和630B处将频带作为单独的流进行缓冲和处理。将频带作为单独的流处理允许编码器多路复用独立流的处理。在基于块的编码方法诸如HEVC编码中,在多个阶段处在管线中处理块(称为编码树单元(CTU));两个或更多个块可在给定时钟周期处处于管线的不同阶段,并且该块随着该时钟周期移动通过管线。给定块的处理可依赖于一个或多个先前处理的相邻块,例如给定块上方的行中的一个或多个块和/或给定块左侧的块。通过多路复用流的处理,编码器将给定流中的块的处理间隔开,从而提供附加时钟周期以处理给定块所依赖的相邻块。例如,当给定块到达依赖于先前处理的相邻块的阶段时,给定块左侧的块可在管线中的给定块之前若干阶段。这允许编码器更好地处理对先前处理的块的依赖性,并且减少或消除在依赖于相邻块的阶段处处理给定块之前等待管线中的相邻块的处理完成的需要。
如640处所指示,无线接口对在元素530处由编码器所生成的压缩数据进行分组,并通过无线连接将分组发送至设备。如从650返回到600的箭头所指示,只要用户正在使用VR/MR系统,该方法就继续。
如元素620处所指示,将像素数据分解成频带允许在元素630A和630B处由编码器对频带进行优先化,并且在元素640处由无线接口对频带进行优先化。通常,在图像和视频传输中,较低的频率更重要,而较高的频率不太重要。较高频率通常对应于图像中的细节,并且因此可被视为较低优先级。较高频带包含图像中较小百分比的能量。大多数能量包含在较低频带中。因此,将像素数据分解成频带为数据流提供了优先级排序,当对数据流进行编码和传输时,编码器和无线接口可利用该优先级排序。例如,在一些实施方案中,可在不同频带上使用不同的压缩技术,其中更积极的压缩应用于较低优先级带,并且更保守的压缩应用于较高优先级带。作为另一个示例,频带的优先级排序可有助于提供VR/MR系统的适度降级。可监测无线连接的性能,并且可考虑来自设备的反馈,以跟踪整个系统的性能。如果系统由于某种原因而落后,例如如果无线连接降级并且无线连接的带宽容量下降到阈值以下,则编码器和无线接口可将较低频带中的一个或多个较低频带的编码和传输优先化,并且可减少或降低已被分配较低优先级级别的频率级别中的一个或多个频率级别(例如,较高频带中的一个或多个较高频带)的编码和/或传输。
虽然描述了其中每个条带被分成四个图块并且两个编码器对来自每个条带的相应图块进行操作的实施方案,但是在一些实施方案中,条带可被分成更多图块(例如,六个或八个图块),并且在一些实施方案中可使用更多编码器(例如,三个或四个编码器)。
速率控制
编码器可采用速率控制方法或算法来动态地调整编码器参数以实现目标比特率。速率控制方法可基于无线连接的可用带宽来估计视频比特率。所估计的比特率可用于调整编码器参数以确保所编码的比特流可被成功传输,同时优化可用带宽的使用。通常,用于视频流传输系统的速率控制方法就一个帧或两个帧的时间常数进行工作,以估计视频比特率并相应地调整编码器参数。
实现如本文所述的视频编码系统的实施方案的VR/MR系统的目标可以是在基站上渲染虚拟内容的时间和在设备上显示该虚拟内容的时间之间提供非常低的延迟(例如,4毫秒-5毫秒),同时使错误最小化(例如,丢弃分组)并使通过无线连接的带宽使用最大化。当对要通过无线连接传输到设备的数据进行编码时,系统的目标低延迟对编码器中的速率控制来讲是一项挑战。
在一些实施方案中,该视频编码系统包括:执行二层小波分解的小波变换部件,该二层小波分解将来自帧的条带的像素块(例如,64x64或128x128块)分解成多个(例如,七个)不同的频带;以及基于块的编码器,诸如编码该频带的HEVC。在一些实施方案中,为了在VR/MR系统的严格延迟要求下执行速率控制,速率控制部件可针对每个条带调整编码器参数(例如,频带的量化参数),而不是就一个帧或两个帧的时间常数进行工作来调整编码器参数。在一些实施方案中,可以在小波变换之后在局部存储器中缓冲条带的频带,使得可以在编码之前计算该频带上的复杂性统计值,例如通过视频编码系统的复杂性分析部件。在一些实施方案中,复杂性统计值可包括但不限于CTU块的像素梯度和大小方差中的一者或多者。该复杂性统计值然后可由速率控制部件用于确定该频带的量化参数,以用于调制编码器中的针对当前条带的速率。对缓冲的频带计算复杂性统计值允许该视频编码系统在编码条带之前估计条带中的复杂性程度。
在一些实施方案中,该速率控制部件可检查一个或多个先前处理的帧的统计值,以确定用于对该帧的共址(co-sited)块或条带进行编码的实际比特数。然后,该信息可与当前条带的复杂性统计值结合用于确定当前条带的量化参数。
在一些实施方案中,可以联合地计算频带的量化参数,以在设备上执行解码器重构和小波合成之后优化该帧的总体显示质量。用于频带之间的速率分配的方法是在频带中的每个频带中找到导致操作速率失真曲线上的相等斜率的操作点。在一些实施方案中,可以使用来自编码器管线的熵编码阶段的统计值的组合来估计操作速率失真曲线,其中事实是系数的速率可以非常地近似于量化参数步长6。
在一些实施方案中,在图像(例如,中心凹区域)内可存在应具有比相同图像中的周围区域(例如,周边区域)更高的分辨率的感兴趣区域。在一些实施方案中,来自先前帧的复杂性统计值连同来自先前帧的中心凹区域可被存储并用于计算当前帧的条带中的频带的量化参数。例如,对于要编码的每个块,先前帧的中心凹区域可用于调制为先前帧计算的复杂性统计值。然后,除了为当前帧的条带计算的复杂性统计值之外,还可以使用所得的复杂性统计值来确定该量化参数。
在一些实施方案中,速率控制部件可在块级而不是在条带级调整编码器参数(例如,频带或优先级的量化参数)。在一些实施方案中,可以计算条带的每个块的复杂性统计值,并且可以确定该块的量化参数。
图7是根据至少一些实施方案的示出如图1或图2中所示的视频编码系统的框图,其中在编码之前计算得出频带的复杂性统计值并用于生成量化参数以用于编码。
在一些实施方案中,包括像素数据的帧的渲染条带首先由预滤波器1004部件(例如,N沟道滤波器组)处理。在一些实施方案中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预滤波外围区域(即,帧的在中心凹区域之外的部分)来减少信息,例如通过滤波高频信息和/或增加色彩压缩。
预滤波器1004的输出由小波变换1006部件处理。在一些实施方案中,该小波变换1006部件执行二层小波分解的,该二层小波分解将来自帧的条带的像素块(例如,64x64或128x128块)分解成多个(例如,七个)不同的频带。可以在小波变换1005之后缓冲1008条带的频带,使得可以在编码之前通过视频编码系统的复杂性分析1050部件来计算该条带的频带上的复杂性统计值。在一些实施方案中,复杂性统计值可包括但不限于CTU块的像素梯度和大小方差中的一者或多者。复杂性分析1050部件向编码器1008的速率控制1018部件提供条带中频带的复杂性统计值。该速率控制1018部件然后至少部分地基于该复杂性统计值来计算条带中的频带中的每个频带的量化参数。
在一些实施方案中,可以由速率控制1018部件联合地计算频带的量化参数,以在设备上执行解码器重构和小波合成之后在频带之间分配速率同时优化该帧的总体显示质量。用于频带之间的速率分配的方法是在频带中的每个频带中找到导致操作速率失真曲线上的相等斜率的操作点。在一些实施方案中,可以使用来自编码器管线的熵编码阶段的统计值的组合来估计操作速率失真曲线,其中事实是系数的速率可以非常地近似于量化参数步长6。
在一些实施方案中,该速率控制部件可检查一个或多个先前处理的帧的统计值,以确定用于对该帧的共址(co-sited)块或条带进行编码的实际比特数。然后,该信息可与当前条带的复杂性统计值结合用于确定当前条带的量化参数。
在一些实施方案中,在图像(例如,中心凹区域)内可存在应具有比相同图像中的周围区域(例如,周边区域)更高的分辨率的感兴趣区域。在一些实施方案中,来自先前帧的复杂性统计值连同来自先前帧的中心凹区域可由速率控制1018部件存储并用于计算当前帧的条带中的频带的量化参数。例如,对于要编码的每个块,先前帧的中心凹区域可用于调制为先前帧计算的复杂性统计值。然后,除了为当前帧的条带计算的复杂性统计值之外,还可以使用所得的复杂性统计值来确定该量化参数。
速率控制1018部件将条带中的频带的量化参数提供给块处理管线1020,该块处理管线1020使用该量化参数来对当前条带的频带进行编码。将经编码的频带提供给无线接口1010,该无线接口1010通过无线连接1080将经编码的频带分组并传输到设备。
该视频编码系统的目标是优化到设备的视频流的质量,同时使带宽使用最大化并且使到设备的无线连接1080上的延迟最小化。在一些实施方案中,为了帮助实现该目标,无线接口1010可将当前无线连接信息作为反馈提供给编码器1008的速率控制1018部件。速率控制部件1018可使用该信息确定频带的量化参数。在一些实施方案中,无线接口1010可以跟踪无线连接1080的瞬时总比特率,并且还可以跟踪连接1080上的丢弃分组率。在一些实施方案中,无线接口1010将无线连接1080的当前比特率馈送回速率控制1018部件,该速率控制1018部件可使用该信息来在不同频带之间分配可用比特率。例如,如果无线连接1080的比特率当前较低,则速率控制1018部件可调整较高频带中的一个或多个频带的量化参数,使得较少的比特被分配给那些频带。在一些实施方案中,无线接口1010还将用于无线连接1080的当前丢弃分组率馈送回速率控制1018部件;速率控制1018部件可使用当前丢弃分组率和当前比特率来平衡频带的量化参数的调整,以减小丢弃分组率或使其最小化,同时使在当前比特率下的带宽使用最大化,以便优化视频流的质量。
在一些实施方案中,速率控制1018部件可以在块级而不是在条带级调整频带的量化参数。
图8是根据至少一些实施方案的用于如图7所示的视频编码系统的操作的方法的流程图。如1100处所指示的,预滤波器部件确定帧的中心凹区域并对条带中的像素数据进行预滤波。在一些实施方案中,包括像素数据的帧的渲染条带首先由预滤波器部件(例如,N沟道滤波器组)处理。在一些实施方案中,从设备获得的注视跟踪信息可用于识别用户当前正在查看的方向。帧的对应于中心凹的区域(称为中心凹区域)可至少部分地基于所确定的注视方向来识别。可基于对人类视觉系统的了解预滤波外围区域(即,帧的在中心凹区域之外的部分)来减少信息,例如通过滤波高频信息和/或增加色彩压缩。
如1110处所指示的,小波变换部件将经预滤波的像素数据分解成N个(例如,7个)频带。在一些实施方案中,该小波变换1006部件执行二层小波分解的,该二层小波分解将来自帧的条带的像素块(例如,64x64或128x128块)分解成多个(例如,七个)不同的频带。可以在小波变换之后缓冲条带的频带,使得可以在编码之前通过视频编码系统的复杂性分析部件来计算该条带的频带上的复杂性统计值。
如1120处所指示的,复杂性分析部件计算该频带上的复杂性统计值。在一些实施方案中,复杂性统计值可包括但不限于CTU块的像素梯度和大小方差中的一者或多者。复杂性分析部件向编码器的速率控制部件提供条带中频带的复杂性统计值。
如1130处所指示的,编码器速率控制部件至少部分地基于该复杂性统计值来确定条带中的频带中的每个频带的量化参数。在一些实施方案中,可以由速率控制1018部件联合地计算频带的量化参数,以在设备上执行解码器重构和小波合成之后在频带之间分配速率同时优化该帧的总体显示质量。用于频带之间的速率分配的方法是在频带中的每个频带中找到导致操作速率失真曲线上的相等斜率的操作点。在一些实施方案中,可以使用来自编码器管线的熵编码阶段的统计值的组合来估计操作速率失真曲线,其中事实是系数的速率可以非常地近似于量化参数步长6。
在一些实施方案中,该速率控制部件可检查一个或多个先前处理的帧的统计值,以确定用于对该帧的共址(co-sited)块或条带进行编码的实际比特数。然后,该信息可与当前条带的复杂性统计值结合用于确定当前条带的量化参数。
在一些实施方案中,在图像(例如,中心凹区域)内可存在应具有比相同图像中的周围区域(例如,周边区域)更高的分辨率的感兴趣区域。在一些实施方案中,来自先前帧的复杂性统计值连同来自先前帧的中心凹区域可由速率控制1018部件存储并用于计算当前帧的条带中的频带的量化参数。例如,对于要编码的每个块,先前帧的中心凹区域可用于调制为先前帧计算的复杂性统计值。然后,除了为当前帧的条带计算的复杂性统计值之外,还可以使用所得的复杂性统计值来确定该量化参数。
如1140处所指示的,编码器(例如,HEVC编码器)使用该量化参数将编码技术应用于频带以压缩数据。速率控制部件将条带中的频带的量化参数提供给编码器的块处理管线,该块处理管线使用该量化参数来对当前条带的频带进行编码。将经编码的频带提供给基站的无线接口。
如1150处所指示的,该无线接口对压缩的数据进行分组并通过无线连接将该压缩的数据发送至设备。在一些实施方案中,无线接口可将当前无线连接信息作为反馈提供给编码器的速率控制部件。该速率控制部件可使用该信息确定频带的量化参数。在一些实施方案中,无线接口可以跟踪无线连接的瞬时总比特率,并且还可以跟踪该连接上的丢弃分组率。在一些实施方案中,该速率控制部件可使用无线连接的当前比特率来在不同频带之间分配可用比特率。在一些实施方案中,该速率控制部件可使用当前丢弃分组率和当前比特率来平衡频带的量化参数的调整,以减小或使丢弃分组率最小化,以便优化当前比特率下的视频流的质量。
如通过从元素1160返回到元素1100的箭头所指示的,只要有数据要传输到设备,该方法就可以继续。
示例性VR/MR系统
图9示出了根据至少一些实施方案的可实现视频编码系统的示例性VR/MR系统2000。VR/MR系统2000可包括至少一个设备2150(例如,笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持式计算设备或HMD,诸如可由用户佩戴的头戴式耳机、头盔、护目镜或眼镜)和计算设备2100(本文称为基站)。基站2100渲染包括虚拟内容的VR帧或MR帧,对该帧进行编码,并且通过无线连接2180将编码的帧传输到设备2150以用于由设备2150解码和显示。
基站2100和设备2150可各自包括允许基站2100和设备2150经由无线连接2180通信并交换数据的无线通信技术。在一些实施方案中,可根据在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术来实现无线连接2180。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。
在一些实施方案中,设备2150可包括收集关于用户的环境的信息(例如,视频、深度信息、照明信息等)和/或关于用户的信息(例如,用户的表情、眼睛移动、注视方向、手势等)的传感器。设备2150可经由无线连接2180将由传感器收集的信息中的至少一些信息传输到基站2100。基站2100可至少部分地基于从传感器获得的各种信息来渲染包括虚拟内容的供设备2150显示的帧,编码该帧,并且经由无线连接2180将编码的帧传输至设备2150以供解码和向用户显示。为了对帧进行编码和传输,基站2100可实现如图1至图8所示的视频编码系统。
图10是示出根据一些实施方案的如图9所示的示例性VR/MR系统中的功能部件和处理的框图。设备2150可以是但不限于笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持计算设备或HMD,诸如头戴式耳机、头盔、护目镜或可由用户佩戴的眼镜。设备2150可包括可实现各种类型的虚拟或增强现实显示技术中的任一者的显示器2156部件或子系统。例如,HMD设备2150可以是近眼系统,该近眼系统在用户的眼睛前面的屏幕上显示左图像和右图像(该左图像和右图像由受试者查看),诸如DLP(数字光处理)、LCD(液晶显示器)和LCoS(硅上液晶)技术VR系统。作为另一个示例,HMD设备2150可以是直接视网膜投影仪系统,该直接视网膜投影仪系统逐像素地将左图像和右图像扫描到受试者的眼睛。为扫描图像,左投影仪和右投影仪生成光束,该光束被引导到位于用户的眼睛的前面的左反射部件和右反射部件(例如,椭球反射镜);反射部件将光束反射到用户的眼睛。为了创建三维(3D)效果,3D虚拟视图中的不同深度或距离处的虚拟内容在两个图像中作为距离的三角测量的函数向左或向右移位,其中较近的对象比较远的对象移位得更多。
设备2150还可包括控制器2154,该控制器被配置为实现如本文所述的VR/MR系统2000的设备侧功能。在一些实施方案中,设备2150还可包括存储器2170,该存储器被配置为存储可由控制器2154执行的VR/MR系统2000的设备部件的软件(代码2172),以及当在控制器2154上执行时可以由该软件使用的数据2174。在各种实施方案中,控制器2154可为包括一个处理器的单处理器系统、或包括若干个处理器(例如,两个、四个、八个或另一合适数量)的多处理器系统。控制器2154可包括被配置为实现任何合适的指令集架构的中央处理单元(CPU),并且可被配置为执行在该指令集架构中定义的指令。例如,在各种实施方案中,控制器2154可包括实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、RISC或MIPS ISA、或任何其他合适的ISA)中的任何指令集架构的通用处理器或嵌入式处理器。在多处理器系统中,每个处理器可共同实现相同的ISA,但不是必需的。控制器2154可采用任何微架构,包括标量、超标量、管线、超管线、无序、有序、推测性、非推测性等,或它们的组合。控制器2154可包括实现微码技术的电路。控制器2154可包括各自被配置为执行指令的一个或多个处理核心。控制器2154可包括一个或多个级别的高速缓存,该高速缓存可采用任何大小和任何配置(集合关联、直接映射等)。在一些实施方案中,控制器2154可包括至少一个图形处理单元(GPU),该至少一个图形处理单元可包括任何合适的图形处理电路。通常,GPU可被配置为将待显示对象渲染到帧缓冲区中(例如,包括整个帧的像素数据的帧缓冲区)。GPU可包括一个或多个图形处理器,该图形处理器可执行图形软件以进行部分或全部的图形操作或某些图形操作的硬件加速。在一些实施方案中,控制器2154可包括用于处理和渲染视频和/或图像的一个或多个其他部件,例如图像信号处理器(ISP)、编码器/解码器(编解码器)等。在一些实施方案中,控制器2154可包括至少一个片上系统(SOC)。
存储器2170可包括任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。在一些实施方案中,一个或多个存储器设备可以耦合到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,该设备可以与实现系统的集成电路在芯片堆叠配置、封装堆叠配置或者多芯片模块配置中安装。
在一些实施方案中,传感器2160可包括但不限于可用于跟踪用户的眼睛的位置和移动的一个或多个注视跟踪传感器(例如,具有IR照明源的IR相机)。在一些实施方案中,可存在两个注视跟踪传感器,其中每个注视跟踪传感器跟踪相应的眼睛。在一些实施方案中,由注视跟踪传感器收集的信息可用于由基站2100调整图像的渲染,和/或基于用户眼睛查看的方向和角度来调整通过设备2150的投影系统进行的图像的投影。例如,在一些实施方案中,在用户的眼睛当前查看的位置周围的区域中的图像的内容可用更多细节进行渲染,并且可处于比用户未查看的区域中的内容更高的分辨率,这允许可用的图像数据处理时间花费在由眼睛的中心凹区域查看的内容,而不是花费在由眼睛的外围区域查看的内容。同样地,用户未注视的区域中的图像的内容可比用户当前查看的点周围的区域的内容压缩得更多。在一些实施方案中,可存在两个注视跟踪传感器,其位于设备2150的内表面上,在使得传感器具有用户的眼睛中的相应眼睛的视图的位置处。然而,在各种实施方案中,可使用更多或更少的注视跟踪传感器,并且注视跟踪传感器可被定位在其他位置处。在示例性非限制性实施方案中,每个注视跟踪传感器可包括IR光源和IR相机,例如具有120FPS或更大的帧速率、70度的HFOV并且具有10毫米(mm)至80mm的工作距离400×400像素数相机。
在一些实施方案中,设备2150可包括至少一个惯性测量单元(IMU)2162,该惯性测量单元被配置为检测设备2150的位置、取向和/或运动并向设备2150的控制器2154和/或向基站2100提供检测到的位置、取向和/或运动数据。
设备2150还可包括无线接口2152,该无线接口被配置为经由无线连接2180与外部基站2100通信,以将传感器输入发送到基站2100,并且从基站2100接收压缩的渲染帧、条带或图块。在一些实施方案中,无线接口2152可实现在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。
基站2100可以是经由无线接口2180通信地耦接到设备2150的外部设备(例如,计算系统、游戏控制台等)。基站2100可包括用于渲染、滤波、编码和传输视频和/或图像的各种类型的处理器(例如,SOC、CPU、ISP、GPU、编解码器和/或其他部件)中的一个或多个处理器。基站2100可至少部分地基于经由无线连接2180从传感器2160获得的各种输入来渲染包括虚拟内容的帧(每个帧包括左图像和右图像),使用如本文所述的视频编码系统滤波和压缩渲染的帧(或帧的条带),并且将压缩的帧或条带传输到设备2150以用于显示。
基站2100可为或可包括任何类型的计算系统或计算设备,诸如台式计算机、笔记本电脑或膝上型计算机、平板电脑或平板设备、智能电话、手持式计算设备、游戏控制器、游戏系统等。基站2100可包括控制器2110,该控制器包括实现VR/MR系统2000(包括如本文所述的视频编码系统)的基座侧功能的一个或多个处理器。基站2100还可包括存储器2120,该存储器被配置为存储可由基站控制器2110执行的VR/MR系统2000的基站部件的软件(代码2122),以及当在控制器2110上执行时可以由该软件使用的数据2124。
在各种实施方案中,基站控制器2110可为包括一个处理器的单处理器系统、或包括若干个处理器(例如,两个、四个、八个或另一合适数量)的多处理器系统。控制器2110可包括被配置为实现任何合适的指令集架构的中央处理单元(CPU),并且可被配置为执行在该指令集架构中定义的指令。例如,在各种实施方案中,控制器2110可包括实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、RISC或MIPS ISA、或任何其他合适的ISA)中的任何指令集架构的通用处理器或嵌入式处理器。在多处理器系统中,每个处理器可共同实现相同的ISA,但不是必需的。控制器2110可采用任何微架构,包括标量、超标量、管线、超管线、无序、有序、推测性、非推测性等,或它们的组合。控制器2110可包括实现微码技术的电路。控制器2110可包括各自被配置为执行指令的一个或多个处理核心。控制器2110可包括一个或多个级别的高速缓存,该高速缓存可采用任何大小和任何配置(集合关联、直接映射等)。在一些实施方案中,控制器2110可包括至少一个图形处理单元(GPU),该至少一个图形处理单元可包括任何合适的图形处理电路。通常,GPU可被配置为将待显示对象渲染到帧缓冲区中(例如,包括整个帧的像素数据的帧缓冲区)。GPU可包括一个或多个图形处理器,该图形处理器可执行图形软件以进行部分或全部的图形操作或某些图形操作的硬件加速。在一些实施方案中,控制器2110可包括如本文所述的用于处理、渲染、滤波和编码视频和/或图像的一个或多个其他部件,例如各种类型的集成电路(IC)、图像信号处理器(ISP)、编码器/解码器(编解码器)等中的一者或多者。在一些实施方案中,控制器2110可包括至少一个片上系统(SOC)。
基站存储器2120可包括任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUS DRAM(RDRAM)、静态RAM(SRAM)等。在一些实施方案中,一个或多个存储器设备可以耦合到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,设备可以与实现系统的集成电路在芯片堆叠配置、封装堆叠配置或者多芯片模块配置中安装。
基站2100还可以包括一个或多个无线技术接口2130,其被配置为经由无线连接2180与设备2150通信,以从设备2150接收传感器输入,并且从基站2100向设备2150发送压缩的帧,条带或图块。在一些实施方案中,无线技术接口2130可实现在设备2150和基站2100之间提供高度定向无线链路的专有无线通信技术。在一些实施方案中,无线通信技术的定向性和带宽可支持同时与基站2100通信的多个设备2150,从而使得多个用户能够同时在协同定位的环境中使用系统2000。然而,在一些实施方案中,可使用其他商业(例如,Wi-Fi、蓝牙等)或专有无线通信技术。
在一些实施方案中,基站2100可被配置为至少部分地基于从设备2150接收的传感器2160输入来渲染帧并将帧传输到设备2150以向用户提供3D虚拟视图。在一些实施方案中,虚拟视图可包括渲染用户的环境,包括基于由一个或多个场景相机(例如,RGB(可见光)摄像机)捕获的视频来渲染用户的环境中的现实对象,该一个或多个场景相机实时捕获用户的环境的高质量、高分辨率视频以用于显示。在一些实施方案中,虚拟视图还可包括由基站2100渲染并与用户的现实环境的投影3D视图复合的虚拟内容(例如,虚拟对象、用于现实对象的虚拟标签、用户的化身等)。
虽然未在图9和图10中示出,但是,在一些实施方案中,VR/MR系统2000可包括一个或多个其他部件。例如,系统可包括光标控制设备(例如,鼠标),以用于在3D虚拟视图中移动虚拟光标以与虚拟内容进行交互。虽然图9和图10示出了单个设备2150,但在一些实施方案中,VR/MR系统2000可支持同时与基站2100通信的多个设备2150,从而使得多个用户能够同时在协同定位的环境中使用该系统。
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。

Claims (20)

1.一种视频编码系统,包括:
基于块的编码器;
小波变换部件,所述小波变换部件包括一个或多个处理器,所述小波变换部件的所述一个或多个处理器被配置为对来自当前视频帧的条带的多个像素块应用小波变换以将来自所述条带的所述像素块分解成多个频带并将包括所述条带的所述频带的频率数据的频率块输出到缓冲器;
复杂性分析部件,所述复杂性分析部件包括一个或多个处理器,所述复杂性分析部件的所述一个或多个处理器被配置为计算跨所述条带的经缓冲的频带的复杂性统计值并将所述条带的所述频带的所述复杂性统计值输出到所述编码器;
其中,所述编码器被配置为:
至少部分地基于所述条带的所述频带的所述复杂性统计值来确定所述条带的所述频带中的每个频带的量化参数;以及
对所述条带的经缓冲的频率块应用编码技术,其中所述编码技术使用所述条带的所述频带的所确定的量化参数以压缩所述频率块中的所述频率数据;
无线接口,所述无线接口被配置为通过无线连接将所述条带的经压缩的频率数据传输到接收设备。
2.根据权利要求1所述的视频编码系统,其中,所述复杂性统计值包括所述条带的像素梯度信息或频率块大小的方差中的一者或多者。
3.根据权利要求1所述的视频编码系统,其中,所述编码器被进一步配置为:至少部分地基于所述条带的所述频带的所述复杂性统计值结合用于对先前处理的视频帧的共址条带进行编码的实际比特数来确定所述条带的所述频带中的每个频带的所述量化参数。
4.根据权利要求1所述的视频编码系统,
其中,所述无线接口被配置为提供所述无线连接的当前可用比特率作为对所述编码器的反馈;
其中,当确定所述条带的所述频带的所述量化参数时,所述编码器被配置为在所述频带之间分配所述当前可用比特率。
5.根据权利要求1所述的视频编码系统,
其中,所述无线接口被配置为提供所述无线连接的当前可用比特率和所述无线连接上的当前丢弃分组率作为对所述编码器的反馈;
其中,当确定所述条带的所述频带的所述量化参数时,所述编码器被配置为调整所述频带的所述量化参数以使所述丢弃分组率最小化同时使在所述当前可用比特率处的可用带宽使用最大化。
6.根据权利要求1所述的视频编码系统,其中,所述编码器被进一步配置为:至少部分地基于所述条带的所述复杂性统计值结合来自先前帧的复杂性统计值和所述先前帧的中心凹区域来确定所述条带的所述量化参数。
7.根据权利要求6所述的视频编码系统,其中,为了至少部分地基于所述条带的所述复杂性统计值结合来自先前帧的复杂性统计值和所述先前帧的中心凹区域来确定所述条带的所述量化参数,所述编码器根据所述先前帧的所述中心凹区域调制来自所述先前帧的所述复杂性统计值,并且使用来自所述先前帧的经调制的复杂性统计值结合所述条带的所述复杂性统计值以确定所述量化参数。
8.根据权利要求1所述的视频编码系统,其中,所述小波变换是应用于来自所述视频帧的每个像素块的两级小波分解。
9.根据权利要求1所述的视频编码系统,其中,所述编码器包括:
块处理管线,所述块处理管线被配置为对所述条带的经缓冲的频率块应用所述编码技术;和
速率控制部件,所述速率控制部件被配置为确定所述条带的所述频带中的每个频带的所述量化参数并将所述量化参数提供给所述块处理管线。
10.一种方法,包括:
一个或多个处理器,所述一个或多个处理器被配置为实施以下操作:
对来自当前视频帧的条带的多个像素块应用小波变换以将来自所述条带的所述像素块分解成多个频带并将包括所述条带的所述频带的频率数据的频率块输出到缓冲器;
计算跨所述条带的经缓冲的频带的复杂性统计值并将所述条带的所述频带的所述复杂性统计值输出到所述编码器;
至少部分地基于所述条带的所述频带的所述复杂性统计值来确定所述条带的所述频带中的每个频带的量化参数;
对所述条带的经缓冲的频率块应用编码技术,其中所述编码技术使用所述条带的所述频带的所确定的量化参数以压缩所述频率块中的所述频率数据;以及
通过无线连接将所述条带的经压缩的频率数据传输到接收设备。
11.根据权利要求10所述的方法,其中,所述复杂性统计值包括所述条带的像素梯度信息或频率块大小的方差中的一者或多者。
12.根据权利要求10所述的方法,还包括:至少部分地基于所述条带的所述频带的所述复杂性统计值结合用于对先前处理的视频帧的共址条带进行编码的实际比特数来确定所述条带的所述频带中的每个频带的所述量化参数。
13.根据权利要求10所述的方法,还包括:跟踪所述无线连接的当前可用比特率,其中确定所述条带的所述频带的所述量化参数包括在所述频带之间分配所述当前可用比特率。
14.根据权利要求10所述的方法,还包括:跟踪所述无线连接的当前可用比特率和所述无线连接上的当前丢弃分组率,其中确定所述条带的所述频带的所述量化参数包括调整所述频带的所述量化参数以使所述丢弃分组率最小化同时使在所述当前可用比特率处的可用带宽使用最大化。
15.根据权利要求10所述的方法,还包括:至少部分地基于所述条带的所述复杂性统计值结合来自先前帧的复杂性统计值和所述先前帧的中心凹区域来确定所述条带的所述量化参数。
16.根据权利要求15所述的方法,其中,至少部分地基于所述条带的所述复杂性统计值结合来自先前帧的复杂性统计值和所述先前帧的中心凹区域来确定所述条带的所述量化参数包括:根据所述先前帧的所述中心凹区域调制来自所述先前帧的所述复杂性统计值,并且使用来自所述先前帧的经调制的复杂性统计值结合所述条带的所述复杂性统计值以确定所述量化参数。
17.一种系统,包括:
设备,所述设备包括一个或多个处理器和显示子系统;
基站,所述基站包括一个或多个处理器,所述基站的所述一个或多个处理器被配置为:
对来自当前视频帧的条带的多个像素块应用小波变换以将来自所述条带的所述像素块分解成多个频带并将包括所述条带的所述频带的频率数据的频率块输出到缓冲器;
计算跨所述条带的经缓冲的频带的复杂性统计值并将所述条带的所述频带的所述复杂性统计值输出到所述编码器;
至少部分地基于所述条带的所述频带的所述复杂性统计值来确定所述条带的所述频带中的每个频带的量化参数;
对所述条带的经缓冲的频率块应用编码技术,其中所述编码技术使用所述条带的所述频带的所确定的量化参数以压缩所述频率块中的所述频率数据;以及
通过无线连接将所述条带的经压缩的频率数据传输到所述设备;
其中,所述设备的所述一个或多个处理器被配置为:
解压缩从所述基站接收的经压缩的频带;
对经解压缩的频带执行小波合成以重构所述视频帧的所述像素数据;以及
将经重构的像素数据提供给所述显示子系统以用于显示。
18.根据权利要求17所述的系统,其中,所述基站的所述一个或多个处理器被配置为:至少部分地基于所述条带的所述频带的所述复杂性统计值结合先前处理的视频帧的编码信息来确定所述条带的所述频带中的每个频带的所述量化参数。
19.根据权利要求17所述的系统,其中,所述基站的所述一个或多个处理器被配置为:调整所述频带的所述量化参数以使所述无线连接上的丢弃分组率最小化同时使在所述无线连接的当前可用比特率下的可用带宽使用最大化。
20.根据权利要求17所述的系统,其中,所述设备是头戴式显示器HMD。
CN201980040176.0A 2018-06-28 2019-06-27 低延迟视频编码和传输的速率控制 Pending CN112313951A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862691427P 2018-06-28 2018-06-28
US62/691,427 2018-06-28
PCT/US2019/039586 WO2020006287A1 (en) 2018-06-28 2019-06-27 Rate control for low latency video encoding and transmission

Publications (1)

Publication Number Publication Date
CN112313951A true CN112313951A (zh) 2021-02-02

Family

ID=67439354

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980040176.0A Pending CN112313951A (zh) 2018-06-28 2019-06-27 低延迟视频编码和传输的速率控制

Country Status (6)

Country Link
US (2) US11451788B2 (zh)
JP (2) JP7249364B2 (zh)
KR (2) KR102541392B1 (zh)
CN (1) CN112313951A (zh)
DE (1) DE112019003203T5 (zh)
WO (1) WO2020006287A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915773A (zh) * 2022-04-08 2022-08-16 中国科学技术大学 一种实现360。vr视频视场重叠失真最小化的稳健传输方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451788B2 (en) 2018-06-28 2022-09-20 Apple Inc. Rate control for low latency video encoding and transmission
KR20210011407A (ko) * 2018-06-28 2021-02-01 애플 인크. 비디오 인코딩 시스템
WO2020006291A1 (en) 2018-06-28 2020-01-02 Apple Inc. Priority-based video encoding and transmission
KR20230144093A (ko) * 2019-07-28 2023-10-13 구글 엘엘씨 포비에이티드 메시들로 몰입형 비디오 콘텐츠를 렌더링하기 위한 방법들, 시스템들, 및 매체들
US11830168B2 (en) 2021-03-31 2023-11-28 Tobii Ab Method of compressing image data for network transport
US20240046410A1 (en) * 2022-08-02 2024-02-08 Qualcomm Incorporated Foveated scaling for rendering and bandwidth workloads

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071876A1 (en) * 2003-09-30 2005-03-31 Van Beek Petrus J. L. Wireless video transmission system
US20060215766A1 (en) * 2005-03-01 2006-09-28 Haohong Wang Region-of-interest coding in video telephony using RHO domain bit allocation
EP2270717A1 (en) * 1998-03-20 2011-01-05 University of Maryland Method and apparatus for decoding images
CN102056011A (zh) * 2010-12-29 2011-05-11 南京邮电大学 一种h264编码实时性能优化方法
CN103141097A (zh) * 2010-09-30 2013-06-05 苹果公司 优化的去块滤波器
US20150215621A1 (en) * 2014-01-30 2015-07-30 Qualcomm Incorporated Rate control using complexity in video coding

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212623A (ja) 1996-01-30 1997-08-15 Fuji Photo Film Co Ltd 画像処理方法
IL117133A (en) 1996-02-14 1999-07-14 Olivr Corp Ltd Method and system for providing on-line virtual reality movies
JP4686516B2 (ja) 1997-12-05 2011-05-25 株式会社ユニバーサルエンターテインメント 遊技機
EP0940994B1 (en) * 1998-03-06 2014-04-16 Canon Kabushiki Kaisha Image processing apparatus and method and storage medium storing steps realizing such method
JP2000115782A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
AU762996B2 (en) * 1999-02-09 2003-07-10 Motorola Australia Pty Ltd An image compression system and method of determining quantisation parameters therefor
KR100580158B1 (ko) 1999-06-12 2006-05-15 삼성전자주식회사 화상 패킷 전송을 위한 무선통신 시스템
US20030067476A1 (en) 2001-10-04 2003-04-10 Eastman Kodak Company Method and system for displaying an image
JP2003152544A (ja) 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US7106907B2 (en) 2002-10-18 2006-09-12 Mitsubishi Electric Research Laboratories, Inc Adaptive error-resilient video encoding using multiple description motion compensation
US6757434B2 (en) * 2002-11-12 2004-06-29 Nokia Corporation Region-of-interest tracking method and device for wavelet-based video coding
JP4151963B2 (ja) 2003-09-19 2008-09-17 株式会社リコー 画像サーバ装置、クライアント装置、動画像配信方法、プログラム、及び、情報記録媒体
US7623719B2 (en) 2003-09-26 2009-11-24 The Regents Of The University Of California Video encoding methods and devices
KR100654436B1 (ko) 2004-07-07 2006-12-06 삼성전자주식회사 비디오 코딩 방법과 디코딩 방법, 및 비디오 인코더와디코더
JP2006222555A (ja) * 2005-02-08 2006-08-24 Matsushita Electric Ind Co Ltd 符号化装置及び符号化方法
US8503536B2 (en) * 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US20080062322A1 (en) * 2006-08-28 2008-03-13 Ortiva Wireless Digital video content customization
JP4254867B2 (ja) 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US8064708B2 (en) * 2007-02-28 2011-11-22 Arizona Board Of Regents On Behalf Of The University Of Arizona Methods and systems for remotely visualizing images
JP2009044483A (ja) 2007-08-09 2009-02-26 Panasonic Corp 画像符号化装置
JP4979655B2 (ja) * 2008-08-07 2012-07-18 キヤノン株式会社 画像符号化装置及びその制御方法
US8406297B2 (en) * 2008-10-17 2013-03-26 Futurewei Technologies, Inc. System and method for bit-allocation in video coding
JP2010239288A (ja) 2009-03-30 2010-10-21 Sony Corp 情報処理装置および方法
US20140192862A1 (en) * 2013-01-07 2014-07-10 Research In Motion Limited Methods and systems for prediction filtering in video coding
US9215472B2 (en) * 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
US9531915B2 (en) * 2013-12-04 2016-12-27 Aspeed Technology Inc. Image encoding system and method thereof
US10264269B2 (en) 2014-10-13 2019-04-16 Apple Inc. Metadata hints to support best effort decoding for green MPEG applications
US9609546B2 (en) 2015-02-02 2017-03-28 Accelerated Media Technologies, Inc. Systems and methods for electronic news gathering
JP6616592B2 (ja) 2015-05-20 2019-12-04 日本放送協会 符号化装置及びそのプログラム
US20160353146A1 (en) 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
KR20170017573A (ko) * 2015-08-07 2017-02-15 삼성전자주식회사 영상 데이터 처리 방법 및 이를 지원하는 전자 장치
JP6722995B2 (ja) 2015-10-23 2020-07-15 キヤノン株式会社 符号化方法及び符号化装置、撮像装置及びプログラム
US9955176B2 (en) 2015-11-30 2018-04-24 Intel Corporation Efficient and scalable intra video/image coding using wavelets and AVC, modified AVC, VPx, modified VPx, or modified HEVC coding
US10310266B2 (en) 2016-02-10 2019-06-04 Advanced Micro Devices, Inc. Method and system for streaming information in wireless virtual reality
US10169846B2 (en) 2016-03-31 2019-01-01 Sony Interactive Entertainment Inc. Selective peripheral vision filtering in a foveated rendering system
US9940697B2 (en) 2016-04-15 2018-04-10 Gopro, Inc. Systems and methods for combined pipeline processing of panoramic images
US11184624B2 (en) * 2016-05-19 2021-11-23 Qualcomm Incorporated Regional random access in pictures
US20180040164A1 (en) 2016-08-05 2018-02-08 Gopro, Inc. Apparatus and methods for selective coding of images
JP2018061141A (ja) 2016-10-05 2018-04-12 富士通株式会社 通信装置および通信方法
KR102543444B1 (ko) * 2017-08-29 2023-06-13 삼성전자주식회사 영상 부호화 장치
US11451788B2 (en) 2018-06-28 2022-09-20 Apple Inc. Rate control for low latency video encoding and transmission

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2270717A1 (en) * 1998-03-20 2011-01-05 University of Maryland Method and apparatus for decoding images
US20050071876A1 (en) * 2003-09-30 2005-03-31 Van Beek Petrus J. L. Wireless video transmission system
US20060215766A1 (en) * 2005-03-01 2006-09-28 Haohong Wang Region-of-interest coding in video telephony using RHO domain bit allocation
CN103141097A (zh) * 2010-09-30 2013-06-05 苹果公司 优化的去块滤波器
CN102056011A (zh) * 2010-12-29 2011-05-11 南京邮电大学 一种h264编码实时性能优化方法
US20150215621A1 (en) * 2014-01-30 2015-07-30 Qualcomm Incorporated Rate control using complexity in video coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915773A (zh) * 2022-04-08 2022-08-16 中国科学技术大学 一种实现360。vr视频视场重叠失真最小化的稳健传输方法
CN114915773B (zh) * 2022-04-08 2023-03-07 中国科学技术大学 一种实现360°vr视频视场重叠失真最小化的稳健传输方法

Also Published As

Publication number Publication date
KR20220143127A (ko) 2022-10-24
DE112019003203T5 (de) 2021-05-27
JP2022180545A (ja) 2022-12-06
JP7490726B2 (ja) 2024-05-27
KR102449052B1 (ko) 2022-09-29
US20230009707A1 (en) 2023-01-12
JP7249364B2 (ja) 2023-03-30
US20210127117A1 (en) 2021-04-29
KR102541392B1 (ko) 2023-06-13
US11451788B2 (en) 2022-09-20
KR20210009367A (ko) 2021-01-26
JP2021526774A (ja) 2021-10-07
WO2020006287A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
JP7490726B2 (ja) 低レイテンシ動画符号化及び送信のレート制御
US11727619B2 (en) Video pipeline
CN112335244B (zh) 基于优先级的视频编码和传输
US11243402B2 (en) Video compression methods and apparatus
JP7441924B2 (ja) 動画符号化システム
US20230362387A1 (en) Block-Based Low Latency Rate Control

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination