CN117014601A - 用于发出虚拟边界和环绕运动补偿的信号的方法 - Google Patents
用于发出虚拟边界和环绕运动补偿的信号的方法 Download PDFInfo
- Publication number
- CN117014601A CN117014601A CN202310791838.6A CN202310791838A CN117014601A CN 117014601 A CN117014601 A CN 117014601A CN 202310791838 A CN202310791838 A CN 202310791838A CN 117014601 A CN117014601 A CN 117014601A
- Authority
- CN
- China
- Prior art keywords
- image
- sps
- flag
- virtual
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 143
- 230000033001 locomotion Effects 0.000 title claims description 71
- 230000011664 signaling Effects 0.000 title claims description 37
- 230000004044 response Effects 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims description 17
- 238000001914 filtration Methods 0.000 abstract description 32
- 238000003672 processing method Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 76
- 238000012545 processing Methods 0.000 description 73
- 238000012952 Resampling Methods 0.000 description 41
- 238000013139 quantization Methods 0.000 description 23
- 230000002123 temporal effect Effects 0.000 description 22
- 230000015654 memory Effects 0.000 description 15
- 241000023320 Luma <angiosperm> Species 0.000 description 12
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 101150114515 CTBS gene Proteins 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012856 packing Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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 group of pictures [GOP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/55—Motion estimation with spatial constraints, e.g. at image or region borders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种图像处理方法。所述方法可以包括:接收包括一组图像的位流;根据所述接收的位流,针对所述组图像,确定是否在序列级别用信号通知一虚拟边界;响应于所述虚拟边界在序列级别被用信号通知,确定所述组图像的虚拟边界的位置,所述位置由所述接收的位流中的用信号通知的范围限定;以及禁用跨所述虚拟边界的环内滤波操作。
Description
相关申请的交叉引用
本公开要求于2019年12月30日提交的申请号62/954,828的美国临时优先权,其全文通过引用并入本文。
技术领域
本公开总体上涉及视频处理,更具体地说,涉及发出虚拟边界和环绕运动补偿信号的方法,
背景技术
视频是采集视觉信息的一组静态图像(或“帧”)。为了减少存储内存和传输带宽,可以在存储或传输之前对视频进行压缩,并且在显示之前对视频进行解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。有多种使用标准化视频编码技术的视频编码格式,最常见的是基于预测、变换,量化,熵编码和环内滤波。视频编码标准,例如高效视频编码(HEVC/H.265)标准,通用视频编码(VVC/H.266)标准以及AVS标准,指定特定视频编码格式,由标准化组织开发。随着视频标准中采用越来越多的先进视频编码技术,新的视频编码标准的编码效率越来越高。
发明内容
本公开提供了用于图像处理的方法。所述方法可以包括:接收包括一组图像的位流;根据所述接收的位流,针对所述组图像,确定是否在序列级别用信号通知一虚拟边界;响应于所述虚拟边界在序列级别被用信号通知,确定所述组图像的虚拟边界的位置,所述位置由所述接收的位流中的用信号通知的范围限定;以及禁用跨所述虚拟边界的环内滤波操作。
本公开实施例还提供一种图像处理装置。所述装置包括:存储器,其存储有一组指令;以及一个或多个处理器,所述一个或多个处理器被配置为执行所述组指令以使所述装置执行:接收包括一组图像的位流;根据所述接收的位流,针对所述组图像,确定是否在序列级别用信号通知一虚拟边界;响应于所述虚拟边界在序列级别被用信号通知,确定所述组图像的虚拟边界的位置,所述位置由所述接收的位流中的用信号通知的范围限定;以及禁用跨所述虚拟边界的环内滤波操作。。
本公开的实施例还提供了一种非暂时性计算机可读介质,其存储有一组指令,所述组指令可由计算机的至少一个处理器执行,以使所述计算机执行一图像处理方法,所述方法包括:接收包括一组图像的位流;根据所述接收的位流,针对所述组图像,确定是否在序列级别用信号通知一虚拟边界;响应于所述虚拟边界在序列级别被用信号通知,确定所述组图像的虚拟边界的位置,所述位置由所述接收的位流中的用信号通知的范围限定;以及禁用跨所述虚拟边界的环内滤波操作。
附图说明
在下面的详细描述和附图中示出了本公开的实施例和各个方面。图中所示的各种特征没有按比例绘制。
图1示出了根据本公开的一些实施例的示例视频序列的结构。
图2A示出了根据本公开的一些实施例的混合视频编码系统的示例性编码过程的示意图。
图2B示出了根据本公开的一些实施例的混合视频编码系统的另一示例性编码过程的示意图。
图3A示出了根据本公开的一些实施例的混合视频编码系统的示例性解码过程的示意图。
图3B示出了根据本公开的一些实施例的混合视频编码系统的另一示例性解码过程的示意图。
图4示出了根据本公开的一些实施例的用于对视频进行编码或解码的示例性装置的框图。
图5示出了根据本公开的一些实施例的用于发信号通知虚拟边界的示例性序列参数集(SPS)语法。
图6示出了根据本公开的一些实施例的用于发信号通知虚拟边界的示例性图像头(PH)语法。
图7A示出了根据本公开的一些实施例的用于等矩形投影(ERP)的示例性水平环绕运动补偿。
图7B示出了根据本公开的一些实施例的示例性用于填充ERP(PERP)的水平环绕运动补偿,
图8示出了根据本公开的一些实施例的用于环绕运动补偿的示例性语法。
图9示出了根据本公开的一些实施例的用于发信号通知图像宽度和高度的最大值的示例性SPS语法。
图10示出了根据本公开的一些实施例的用于发信号通知环绕运动补偿的示例性语法。
图11示出了根据本公开的一些实施例的用于发信号通知虚拟边界的示例性SPS语法。
图12示出了根据本公开的一些实施例的用于发信号通知虚拟边界的另一示例性SPS语法。
图13示出了根据本公开的一些实施例的用于发信号通知环绕运动补偿的示例性SPS语法。
图14示出了根据本公开的一些实施例的用于发信号通知环绕运动补偿的另一示例性SPS语法。
图15示出了根据本公开的一些实施例的用于图像处理的示例性方法。
具体实施方式
现在将详细参考示例性实施例,其示例在附图中示出。以下描述参照附图,除非另有说明,其中不同附图中的相同数字表示相同或相似的元件。在示例性实施例的以下描述中阐述的实施方式并不代表与本公开一致的所有实施方式。相反,它们仅是与如所附权利要求中所述的与本公开相关的方面一致的装置和方法的示例。下面更详细地描述本公开的特定方面。如果与通过引用并入的术语和/或定义相冲突的话,以本文提供的术语和定义为准。
如上所述,视频是按时间顺序排列以存储视觉信息的帧。可以使用视频采集设备(例如,相机)以时间顺序采集和存储这些图像,并且可以使用视频回放设备(例如,电视、计算机、智能手机、平板计算机、视频播放器、或任何具有显示功能的最终用户终端)显示时间序列中的此类图像。此外,在一些应用中,视频采集设备可以实时地将采集的视频发送到视频回放设备(例如,具有监视器的计算机),例如用于监视、会议或现场广播。
为了减少此类应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前进行解压缩。可以通过由处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现压缩和解压缩。用于压缩的模块通常被称为“编码器”,并且用于解压缩的模块通常被称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以被实现为各种合适的硬件、软件、或其组合中的任何一种。例如,编码器和解码器的硬件实现可以包括电路,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑或其任何组合。编码器和解码器的软件实现可以包括固定在计算机可读介质中的程序代码、计算机可执行指令、固件或任何合适的计算机实现的算法或过程。在一些应用中,编解码器可以从第一编码标准解压缩视频,并且使用第二编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以被称为“转码器”。'
视频编码过程可以识别并保留可用于重建图像的有用信息,并忽略不重要的重建信息。如果忽略的、不重要的信息不能被完全重建,则这样的编码过程可以被称为“有损”。否则,它可以被称为“无损”。大多数编码过程都是有损的,这是为了减少所需的存储空间和传输带宽的权衡。
被编码的图像(称为“当前图像”)的有用信息包括相对于参考图像(例如,先前编码和重建的图像)的变化。这样的变化可以包括像素的位置变化、亮度变化或颜色变化,其中位置变化是最受关注的。代表对象的一组像素的位置变化可以反映对象在参考图像和当前图像之间的运动。
未参考另一图像而编码的图像(即,它是自己的参考图像)被称为“I-图像”。使用先前图像作为参考图像编码的图像被称为“P-图像”,使用先前图像和将来图像作为参考图像编码的图像称为被称为“B图像”(参考是“双向”的)。
为了使用一半的带宽实现与HEVC/H.265相同的主观质量,JVET一直在使用联合探索模型(JEM)参考软件开发HEVC以外的技术。随着编码技术被纳入JEM,JEM实现了比HEVC更高的编码性能。
VVC标准继续包括提供更好的压缩性能的更多编码技术。VVC基于已经在诸如HEVC、H.264/AVC、MPEG2、H.263等的现代视频压缩标准中使用的相同的混合视频编码系统。在诸如360度视频的应用中,用于特定投影格式的布局通常具有多个面。例如,MPEG-I第2部分:全方位媒体格式(OMAF)标准化了基于立方体投影格式,名为CMP,具有六个面。对于那些包括多个面的投影格式,无论使用哪种压缩的帧封装布局,在帧封装图像中的两个或多个相邻的面之间都会出现不连续性,如果跨该不连续性上执行环内滤波操作,渲染后在重建的视频中可能会看到面接缝伪影。为了减轻面接缝伪影,必须在帧封装图像中的不连续性处禁用环内滤波操作。可以将虚拟边界设置为用于360度视频的编码工具之一,从而可以在虚拟边界上禁用环内滤波以防止伪影。
图1示出了根据本公开的一些实施例的示例视频序列100的结构。视频序列100可以是实况视频或已被采集和存档的视频。视频100可以是现实生活中的视频、电脑生成的视频(例如,计算机游戏视频)或二者组合(例如,具有增强现实效果的真实视频)。视频序列100可以从视频采集设备(例如,相机)、包含先前采集的视频档案(例如,存储在存储设备中的视频文件)或从视频内容提供商接收视频的视频馈送接口(例如,视频广播收发器)输入。
如图1所示,视频序列100可以包括沿时间线在时间上布置的一系列图像,包括图像102、104、106和108。图像102-106是连续的,在图像106和108之间有更多的图像。在图1中,图像102是I-图像,其参考图像是图像102本身。图像104是P-图像,其参考图像是图像102,如箭头所示。图像106是B图像,其参考图像是图像104和108,如箭头所示。在一些实施例中,图像的参考图像(例如,图像104)可以不紧接在图像之前或之后。例如,图像104的参考图像可以是图像102之前的图像。需要说明的是,图像102-106的参考图像仅仅是示例,本公开并不限定如图1所示的参考图像的实施例。
通常,由于编解码任务的计算复杂性,视频编解码器不会一次对整个图像进行编码或解码。相反,他们可以将图像分割成基本段,并逐段对图像段进行编码或解码。在本公开中,这样的基本段被称为基本处理单元(“BPU”)。例如,图1中的结构110示出了视频序列100的图像(例如,图像102-108中的任何图像)的示例结构。在结构110中,图像被划分为4×4基本处理单元,其边界被示出为虚线。在一些实施例中,基本处理单元可以在一些视频编码标准(例如,MPEG族、H.261、H.263或H.264/AVC)中被称为“宏块”,或者在一些其它视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为“编码树单元”(“CTU”)。基本处理单元可以在图像中具有可变的大小,例如128×128、64×64、32×32、16×16、4×8、16×32或任意形状和大小的像素。可以基于编码效率和要保持在基本处理单元中的细节水平的平衡来为图像选择基本处理单元的大小和形状。
基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器中(例如,在视频帧缓冲区中)的一组不同类型的视频数据。例如,彩色图像的基本处理单元可以包括表示消色差亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr)以及相关联的语法元素,其中亮度和色度分量可以具有与基本处理单元的相同大小。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度和色度分量可以被称为“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。
视频编码具有多个操作阶段,其示例如图2A-2B和图3A-3B所示。对于每个阶段,基本处理单元的大小对于处理仍然可能太大,因此可以进一步分为在本公开中称为“基本处理子单元”的段。在一些实施例中,基本处理子单元可以在一些视频编码标准(例如,MPEG族、H.261、H.263或H.264/AVC)中被称为“块”,或者作为一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中的“编码单元”(“CU”)。基本处理子单元可以具有与基本处理单元相同的大小或具有比基本处理单元更小的大小。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)中的一组不同类型的视频数据(例如,Y、Cb、Cr和相关联的语法元素)。对基本处理子单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。应该注意的是,可以根据处理需要将这种划分执行到进一步的级别。还应注意,不同阶段可以使用不同的方案来划分基本处理单元。
例如,在模式决策阶段(其示例在图2B中示出,编码器可以决定对基本处理单元使用什么预测模式(例如,帧内预测或帧间预测),该基本处理单元可能太大而无法做出这样的决定。编码器可以将基本处理单元划分成多个基本处理子单元(例如,如H.265/HEVC或H.266/VVC中的CU),并且决定每个单独的基本处理子单元的预测类型。
对于另一个示例,在预测阶段(其示例在图2A-2B中示出),编码器可以在基本处理子单元(例如,CU)的级别上执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元划分成更小的段(例如,在H.265/HEVC或H.266/VVC中称为“预测块”或“PB”),在该级别上可以执行预测操作。
对于另一个示例,在变换阶段(其示例在图2A-2B中示出),编码器可以对残差基本处理子单元(例如,CU)执行变换操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元分成更小的段(例如,在H.265/HEVC或H.266/VVC中称为“变换块”或“TB”),在该级别上可以执行变换操作。需要注意的是,同一基本处理子单元的划分方案在预测阶段和变换阶段可以不同。例如,在H.265/HEVC或H.266/VVC中,相同CU的预测块和变换块可以具有不同的大小和数量。
在图1的结构110中,将基本处理单元112进一步分为3×3个基本处理子单元,其边界以虚线示出。同一图像的不同基本处理单元可以在不同的方案中划分为基本处理子单元。
在一些实施方式中,为了提供并行处理的能力以及对视频编码和解码的容错能力,可以将图像划分成用于处理的区域,使得对于图像的区域,编码或解码过程可以不依赖于来自图像的任何其他区域的信息。换句话说,图像的每个区域都可以单独处理。通过这样做,编解码器可以并行处理图像的不同区域,从而提高了编码效率。此外,当一区域的数据在处理中被损坏或在网络传输中丢失时,编解码器可以正确地编码或解码同一图像的其他区域而不依赖于被损坏或丢失的数据,从而提供容错能力。在某些视频编码标准中,可以将图像划分为不同类型的区域。例如,H.265/HEVC和H.266/VVC提供两种类型的区域:“条带(slice)”和“块片(tile)”。还应注意的是,视频序列100的不同图像可以具有用于将图像划分为区域的不同划分方案。
例如,在图1中,结构110被划分成三个区域114、116和118,其边界被示为结构110内部的实线。区域114包括四个基本处理单元。区域116和118均包括六个基本处理单元。需要说明的是,图1中110的基本处理单元、基本处理子单元和结构区域仅是示例,本公开不限制其实施例。
图2A示出了根据本公开的实施例的示例性编码过程200A的示意图。例如,编码过程200A可以由编码器执行。如图2A所示,编码器可以根据过程200A将视频序列202编码为视频位流228。类似于图1中的视频序列100,视频序列202可以包括按时间顺序排列的一组图像(称为“原始图像”)。类似于图1中的结构110,视频序列202的每个原始图像可以由编码器划分为基本处理单元、基本处理子单元或区域进行处理。在一些实施例中,编码器可以针对视频序列202的每个原始图像在基本处理单元的级别上执行过程200A。例如,编码器可以以迭代方式执行过程200A,其中编码器可以在过程200A的一次迭代中对基本处理单元进行编码。在一些实施例中,编码器可以针对视频序列202的每个原始图像的区域(例如,区域114-118)并行地执行过程200A。
参考图2A,编码器可以将视频序列202的原始图像的基本处理单元(称为“原始BPU”)馈送到预测阶段204,以生成预测数据206和预测BPU 208。编码器可以从原始BPU减去预测的BPU 208以生成残差BPU 210。编码器可以将残差BPU 210馈送到变换阶段212和量化阶段214以216生成量化变换系数216。编码器可以将预测数据206和量化变换系数216馈送到二进制编码阶段226以生成视频位流228。组件202、204、206、208、210、212、214、216、226和228可以被称为“前向路径”。在过程200A期间,在量化阶段214之后,编码器可以将量化变换系数216馈送到逆量化阶段218和逆变换阶段220以生成重建的残差BPU 222。编码器可以将重建的残差BPU 222添加到预测的BPU 208以生成预测参考224,其用于过程200A的下一次迭代的预测阶段204中。过程200A的组件218、220、222和224可以被称为“重建路径”。重建路径可以用于确保编码器和解码器都使用相同的参考数据进行预测。
编码器可以迭代地执行过程200A以对编码原始图像的每个原始BPU(在前向路径中)进行编码,并生成用于编码原始图像的下一个原始BPU(在重建路径中)的预测参考224。在对原始图像的所有原始BPU进行编码之后,编码器可以继续对视频序列202中的下一个图像进行编码。
参考过程200A,编码器可以接收由视频采集设备(例如,相机)生成的视频序列202。本文使用的术语“接收”可以指以任何方式接收、输入、获取、检索、获取、读取、访问或用于输入数据的任何动作。
在预测阶段204,在当前迭代时,编码器可以接收原始BPU和预测参考224,并执行预测操作以生成预测数据206和预测BPU 208。预测参考224可以从过程200A的先前迭代的重建路径生成。预测阶段204的目的是通过从预测数据206和预测参考224中提取可用于将原始BPU重建为预测BPU 208的预测数据206来减少信息冗余。
理想地,预测的BPU 208可以与原始BPU相同。然而,由于非理想的预测和重建操作,预测的BPU 208通常与原始BPU略有不同。为了记录这些差异,在生成预测BPU 208,编码器可以将其从原始BPU中减去以生成残差BPU 210。例如,编码器可以从原始BPU的像素的值减去预测BPU 208的对应像素的值(例如,灰度值或RGB值)。残差BPU 210的每个像素可以具有残差值作为原始BPU和预测BPU208的相应像素之间的这种相减的结果,与原始BPU相比,预测数据206和残差BPU 210可以具有更少的比特数,但是它们可以用于重建原始BPU,而不会出现明显的质量下降。因此,原始BPU被压缩。
为了进一步压缩残差BPU 210,在变换阶段212,编码器可以通过将残差BPU 210分解为一组二维“基本图案(base pattern)”来减少其空间冗余。每个基本图案与“变换系数”相关联。基本图案可以具有相同的大小(例如,残差BPU 210的大小),每个基本图案可以表示残差BPU 210的变化频率(例如,亮度变化的频率)分量。基本图案中的任何一个都不能从任何其他基本图案的任何组合(例如,线性组合)中再现。换句话说,分解可以将残差BPU210的变化分解到频域中。这种分解类似于函数的离散傅立叶变换,其中,基本图像类似于离散傅立叶变换的基本函数(例如,三角函数),并且变换系数类似于与基本函数相关联的系数。
不同的变换算法可以使用不同的基本图案。在变换阶段212可以使用各种变换算法,例如,离散余弦变换、离散正弦变换等。变换阶段212处的变换是可逆的。也就是说,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差BPU 210。例如,为了恢复残差BPU210的像素,逆变换可以是将基本图案的对应像素的值乘以相应的相关联系数并将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此具有相同的基本图案)。因此,编码器可以仅记录变换系数,解码器可以从中重建残差BPU210,而无需从编码器接收基本图案。与残差BPU 210相比,变换系数可以具有更少的比特,但是它们可以用于重建残差BPU 210而没有显著的质量劣化。因此,残差BPU 210被进一步压缩。
编码器可以进一步在量化阶段214压缩变换系数。在变换过程中,不同的基本图案可以表示不同的变化频率(例如,亮度变化频率)。因为人眼通常更擅长识别低频变化,所以编码器可以忽略高频变化的信息,而不会在解码中引起明显的质量劣化。例如,在量化阶段214,编码器可以通过将每个变换系数除以整数值(称为“量化参数”)并将商四舍五入到其最接近的整数来生成量化的变换系数216。在这样的操作之后,可以将高频基本图案的一些变换系数转换为零,并且可以将低频基本图案的变换系数转换为较小的整数。编码器可以忽略零值的量化变换系数216,由此变换系数被进一步压缩。该量化处理也是可逆的,其中量化变换系数216可以在量化的逆操作(称为“逆量化”)中被重建为变换系数。
因为编码器在舍入操作中忽略了该除法的余数,所以量化阶段214可能是有损的。通常,量化阶段214可以在过程200A中贡献最多的信息损失。信息损失越大,量化变换系数216所需的比特数就越少。为了获得不同级别的信息损失,编码器可以使用不同的量化参数值或量化过程的任何其他参数。
在二进制编码阶段226,编码器可以使用二进制编码技术对预测数据206和量化变换系数216进行编码,二进制编码例如为熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码,或任何其他无损或有损压缩算法。在一些实施例中,除了预测数据206和量化变换系数216之外,编码器可以在二进制编码阶段226编码其他信息,例如,在预测阶段204使用的预测模式、预测操作的参数、在变换阶段212处的变换类型。量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频位流228。在一些实施例中,视频位流228可以被进一步打包以用于网络传输。
参照过程200A的重建路径,在逆量化阶段218,编码器可以对量化变换系数216执行逆量化,以生成重建的变换系数。在逆变换阶段220,编码器可以基于重建的变换系数生成重建残差BPU 222。编码器可以将重建残差BPU 222添加到预测BPU 208以生成将在过程200A的下一次迭代中使用的预测参考224。
应当注意的是,过程200A的其他变体可用于对视频序列202进行编码。在一些实施例中,过程200A的阶段可以由编码器以不同的顺序执行。在一些实施例中,过程200A的一个或多个阶段可以组合成单个阶段。在一些实施例中,过程200A的单个阶段可以分为多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200A可以包括附加的阶段。在一些实施例中,过程200A可以省略图2A中的一个或多个阶段。
图2B示出了根据本公开的实施例的另一示例编码过程200B的示意图。过程200B可以修改自过程200A。例如,过程200B可以由符合混合视频编码标准(例如,H.26x系列)的编码器使用。与过程200A相比,过程200B的前向路径还包括模式决策阶段230,并将预测阶段204分为空间预测阶段2042和时间预测阶段2044,过程200B的重建路径还另外包括环路滤波阶段232和缓冲区234。
通常,预测技术可以分为两种类型:空间预测和时间预测。空间预测(例如,帧内图像预测或“帧内预测”)可以使用来自同一图像中的一个或多个已经编码的相邻BPU的像素来预测当前BPU。也就是说,空间预测中的预测参考224可以包括相邻的BPU。空间预测可以减少图像固有的空间冗余。时间预测(例如,图像间预测或“帧间预测”)可以使用来自一个或多个已经编码的图像的区域来预测当前BPU。也就是说,时间预测中的预测参考224可以包括编码图像。时间预测可以减少图像固有的时间冗余。
参考过程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于被编码的图像的原始BPU,预测参考224可以包括在同一图像中已经被编码(在前向路径中)和重建(在重建路径中)的一个或多个相邻BPU。编码器可以通过插值相邻的BPU来生成预测的BPU 208。插值技术可以包括例如线性插值或内插、多项式插值或内插等。在一些实施例中,编码器可以在像素级执行插值,例如通过插值预测BPU 208的每个像素的对应像素的值。用于插值的相邻BPU可以位于相对于原始BPU的各个方向,例如在垂直方向(例如,在原始BPU的顶部),水平方向(例如,在原始BPU的左侧),对角线方向(例如,在原始BPU的左下、右下、左上或右上),或在所使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括,例如,所使用的相邻BPU的位置(例如,坐标)、所使用的相邻BPU的大小、插值的参数、所使用的相邻BPU相对于原始BPU的方向等。
对于另一个示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图像的原始BPU,预测参考224可以包括已经被编码(在前向路径中)和重建(在重建路径中)的一个或多个图像(被称为“参考图像”)。在一些实施例中,可以通过逐个BPU对参考图像进行编码和重建。例如,编码器可以将重建的残差BPU 222添加到预测BPU 208以生成重建BPU。当同一张图像的所有重建的BPU都被生成时,编码器可以生成一重建图像作为参考图像。编码器可以执行“运动估计”的操作以搜索参考图像的范围(称为“搜索窗口”)中的匹配区域。可以基于原始BPU在当前图像中的位置来确定搜索窗口在参考图像中的位置。例如,搜索窗口可以在参考图像中与当前图像中的原始BPU具有相同坐标的位置处为中心,并且可以向外延伸预定距离。当编码器在搜索窗口中识别(例如,通过使用pel递归算法、块匹配算法等)类似于原始BPU的区域时,编码器可以确定这样的区域作为匹配区域。匹配区域可以具有与原始BPU不同的大小(例如,小于、等于、大于或具有不同的形状)。因为参考图像和当前图像在时间线上在时间上分开(例如,如图1所示),所以可以认为匹配区域随着时间的推移“移动”到原始BPU的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考图像时(例如,如图1中的图像106),编码器可以搜索匹配区域并为每个参考图像确定其相关联的运动矢量。在一些实施例中,编码器可以将权重分配给各个匹配参考图像的匹配区域的像素值。
运动估计可用于识别各种类型的运动,例如平移、旋转、缩放等。对于帧间预测,预测数据206可以包括例如匹配区域的位置(例如,坐标)、与匹配区域相关联的运动矢量、参考图像的数量、与参考图像相关联的权重等。
为了生成预测的BPU 208,编码器可以执行“运动补偿”的操作。运动补偿可以用于基于预测数据206(例如,运动向量)和预测参考224来重建预测的BPU 208。例如,编码器可以根据运动矢量移动参考图像的匹配区域,其中编码器可以预测当前图像的原始BPU。当使用多个参考图像时(例如,如图1中的图像106),编码器可以根据匹配区域的各个运动矢量和平均像素值来移动参考图像的匹配区域。在一些实施例中,如果编码器已经将权重分配给各个匹配参考图像的匹配区域的像素值,则编码器可以将移动的匹配区域的像素值的加权和相加。
在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以使用相对于当前图像在相同时间方向上的一个或多个参考图像。例如,图1中的图像104是单向帧间预测图像,其中参考图像(即,图像102)在图像04之前。双向帧间预测可以在相对于当前图像的两个时间方向上使用一个或多个参考图像。例如,图1中的图像106是双向帧间预测图像,其中参考图像(即,图像104和08)相对于图像104在两个时间方向上。
仍然参考过程200B的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决策阶段230,编码器可以为过程200B的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行速率失真优化技术,其中编码器可以根据候选预测模式的比特率和候选预测模式下的重建参考图像的失真来选择预测模式以最小化成本函数的值。根据所选择的预测模式,编码器可以生成相应的预测BPU 208和预测数据206。
在过程200B的重建路径中,如果在前向路径中已经选择了帧内预测模式,则在生成预测参考224(例如,在当前图像中已经编码和重建的当前BPU)之后,编码器可以将预测参考224直接馈送到空间预测阶段2042以用于以后的使用(例如,用于插值当前图像的下一BPU)。如果在前向路径中已经选择了帧间预测模式,则在生成预测参考224(例如,其中所有BPU都已被编码和重建的当前图像)之后,编码器可以将预测参考224馈送到环路滤波器阶段232。在该阶段,编码器可以将环路滤波器应用于预测参考224,以减少或消除由帧间预测引入的失真(例如,块状伪影)。编码器可以在环路滤波器阶段232处应用各种环路滤波器技术,例如去块、采样自适应补偿、自适应环路滤波器等。可以将经环路滤波的参考图像存储在缓冲区234(或“经解码的图像缓冲区”)中以供以后使用(例如,用作视频序列202的未来图像的帧间预测参考图像)。编码器可以将一个或多个参考图像存储在缓冲区234中,以在时间预测阶段2044处使用。在一些实施例中,编码器可以在二进制编码阶段226处编码环路滤波器的参数(例如,环路滤波器强度)以及量化变换系数216、预测数据206和其他信息。
图3A示出了根据本公开的实施例的示例性解码过程300A的示意图。过程300A可以是对应于图2A中的压缩过程200A的解压缩过程。在一些实施例中,过程300A可以类似于过程200A的重建路径。解码器可以根据过程300A将视频位流228解码成视频流304。视频流304可以非常类似于视频序列202。然而,由于压缩和解压缩过程中的信息丢失(例如,图2A-2B中的量化阶段214),通常,视频流304与视频序列202不同。类似于图2A-2B中的过程200A和200B,解码器可以在基本处理单元(BPU)级别对在视频位流228中编码的每个图像执行过程300A。例如,解码器可以以迭代方式执行过程300A,其中解码器可以在过程300A的一次迭代中对基本处理单元进行解码。在一些实施例中,解码器可以针对在视频位流228中编码的每个图像的区域(例如,区域114-118)并行地执行过程300A。
如图3A所示,解码器可以将与编码图像的基本处理单元(称为“编码BPU”)相关联的视频位流228的一部分馈送到二进制解码阶段302,在二进制解码阶段302,解码器可以将该部分解码成预测数据206和量化变换系数216。解码器可以将量化变换系数216馈送到逆量化阶段218和逆变换阶段220以生成重建残差BPU222。解码器可以将预测数据206馈送到预测阶段204以生成预测BPU 208。解码器可以将重建残差BPU222添加到预测BPU 208以生成预测参考224。在一些实施例中,预测参考224可以存储在缓冲区(例如,计算机存储器中的解码图像缓冲区)中。解码器可以将预测参考224馈送到预测阶段204,用于在过程300A的下一次迭代中执行预测操作。
解码器可以迭代地执行过程300A,以解码编码图像的每个编码BPU,并生成用于编码图像的下一个编码BPU的预测参考224。在解码编码图像的所有编码BPU之后,解码器可以将该图像输出到视频流304以供显示,并且继续解码视频位流228中的下一个编码图像。
在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损压缩算法)的逆运算。在一些实施例中,除了预测数据206和量化的变换系数216,解码器可以在二进制解码阶段302解码其他信息,例如预测模式、预测操作的参数、变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频位流228通过网络以包的形式传输,则解码器可以在将视频位流228馈送到二进制解码级302之前对其进行解包。
图3B示出了根据本公开的实施例的另一示例解码过程300B的示意图。过程300B可以修改自过程300A。例如,过程300B可以由符合混合视频编码标准(例如,H.26x系列)的解码器使用。与过程300A相比,过程300B额外地将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并且额外地包括环路滤波阶段232和缓冲区234。
在过程300B中,对于在解码的编码图像(称为“当前图像”)的编码基本处理单元(称为“当前BPU”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式来编码当前BPU。例如,如果编码器使用帧内预测来编码当前BPU,则预测数据206可以包括指示帧内预测、帧内预测操作的参数等的预测模式指示符(例如,标志值)。帧内预测操作的参数可以包括例如用作参考的一个或多个相邻BPU的位置(例如,坐标)、相邻BPU的大小、插值的参数、相邻BPU相对于原始BPU的方向等。对于另一示例,如果由编码器使用的帧间预测来编码当前BPU,则预测数据206可以包括指示帧间预测、帧间预测操作的参数等预测模式指示符(例如,标志值)。帧间预测操作的参数可以包括例如与当前BPU相关联的参考图像的数量、分别与参考图像相关联的权重、相应参考图像中的一个或多个匹配区域的位置(例如,坐标)、分别与所述匹配区域相关联的一个或多个运动矢量等。
基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测)还是在时间预测阶段2044执行时间预测(例如,帧间预测),执行这种空间预测或时间预测的细节在图2B中描述,其不会在下文中重复。在执行这样的空间预测或时间预测之后,解码器可以生成预测的BPU 208,解码器可以添加预测的BPU 208和重建残差BPU222以生成预测参考224,如图3A中所述。
在过程300B中,解码器可以将预测参考224馈送到空间预测阶段2042或时间预测阶段2044,用于在过程300B的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测解码当前BPU,则在生成预测参考224(例如,解码的当前BPU)之后,解码器可以将预测参考224直接馈送到空间预测阶段2042以供以后使用(例如,用于插值当前图像的下一个BPU)。如果在时间预测阶段2044使用帧间预测解码当前BPU,则在生成预测参考224(例如,其中所有BPU都被解码的参考图像)之后,编码器可以将预测参考224馈送到环路滤波器阶段232以减少或消除失真(例如,块状伪影)。解码器可以如图2B所示的方式将环路滤波器应用于预测参考224。环路滤波的参考图像可以存储在缓冲区234(例如,计算机存储器中的解码图像缓冲区)中供以后使用(例如,用作视频位流228的未来编码图像的预测间参考图像)。解码器可以将一个或多个参考图像存储在缓冲区234中,以在时间预测阶段2044处使用。在一些实施例中,当预测数据206的预测模式指示符指示帧间预测被用于编码当前BPU时,预测数据可以进一步包括环路滤波器的参数(例如,环路滤波器强度)。
图4是根据本公开的实施例的用于对视频进行编码或解码的示例装置400的框图。如图4所示,装置400可以包括处理器402。当处理器402执行本文所述的指令时,装置400可以成为用于视频编码或解码的专用机器。处理器402可以是能够操纵或处理信息的任何类型的电路。例如,处理器402可以包括任何数量的中央处理单元(或“CPU”)、图形处理单元(或“GPU”)、神经处理单元(“NPU”)、微控制器单元(“MCU”)、光学处理器中、可编程逻辑控制器、微处理器、数字信号处理器、知识产权(IP)核心、可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、复杂可编程逻辑器件(CPLD),一种现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)等的任意组合。在一些实施例中,处理器402还可以是被分组为单个逻辑组件的一组处理器。例如,如图4所示,处理器402可以包括多个处理器,包括处理器402a、处理器402b和处理器402n。
装置400还可以包括被配置为存储数据(例如,指令集、计算机代码、中间数据等)的存储器404。例如,如图4所示,所存储的数据可以包括程序指令(例如,用于实现过程200A、200B、300A或300B中的阶段)和用于处理的数据(例如,视频序列202、视频位流228或视频流304)。处理器402可以访问用于处理的程序指令和数据(例如,经由总线410),并且执行程序指令以对用于处理的数据执行操作或操纵。存储器404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,存储器404可以包括任意数量的随机存取存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡等的任意组合。存储器404也可以是被分组为单个逻辑组件的一组存储器(图4中未示出)。
总线410可以是在装置400内部的组件之间传输数据的通信设备,诸如内部总线(例如,CPU-存储器总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口),或者类似物。
为了便于解释而不引起歧义,在本公开中,处理器402和其他数据处理电路统称为“数据处理电路”。数据处理电路可以完全实现为硬件,或者实现为软件、硬件或固件的组合。此外,数据处理电路可以是单个单独模块,或者可以完全或部分地组合到装置400的任何其他部件中。
装置400还可以包括网络接口406,以提供与网络(例如,因特网、内联网、局域网、移动通信网络等)的有线或无线通信。在一些实施例中,网络接口406可以包括任何数量的网络接口控制器(NIC)、射频(RF)模块、应答器、收发器、调制解调器、路由器、网关、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、近场通信(“NFC”)适配器、蜂窝网络芯片等的任意组合。
在一些实施例中,可选地,装置400可以进一步包括外围接口408,以提供到一个或多个外围设备的连接。如图4所示,外围设备可以包括,但不限于,光标控制设备(例如,鼠标、触摸板或触摸屏)、键盘、显示器(例如,阴极射线管显示器、液晶显示器、或发光二极管显示器)、视频输入设备(例如,相机或耦合到视频档案的输入接口)等。
应当注意,视频编解码器(例如,执行过程200A、200B、300A或300B的编解码器)可以被实现为装置400中的任何软件或硬件模块的任何组合。例如,过程200A、200B、300A或30013的一些或所有阶段可以被实现为装置400的一个或多个软件模块,诸如可以被加载到存储器404中的程序实例。对于另一示例,过程200A、200B、300A或300B的一些或全部阶段可以被实现为装置400的一个或多个硬件模块,诸如专用数据处理电路(例如,FPGA、ASIC、NPU等)。
根据所公开的实施例,若干编码工具可用于对360度视频或逐步解码刷新(GDR)进行编码。虚拟边界是这些编码工具之一。在360度视频等应用中,特定投影格式的布局通常具有多个面。例如,MPEG-I第2部分:全向媒体格式(OMAF)标准化了基于立方体的投影格式,名为CMP,它有六个面。对于包括多个面的那些投影格式,无论使用哪种压缩的帧封装布局,在帧封装图像中的两个或更多个相邻的面之间都会出现不连续性。如果跨此不连续性执行环内滤波操作,则渲染后在重建的视频中可能会看到面接缝伪影。为了减轻面接缝伪影,必须在帧封装图像中的跨不连续处禁用环内滤波操作。与所公开的实施例一致,可以使用称为虚拟边界的概念,跨越该虚拟边界处禁用环路滤波操作。编码器可以将不连续的边界设置为“虚拟边界”,因此不能在不连续的边界上应用环路滤波器。虚拟边界的位置在位流中被用信号通知,并且编码器可以根据当前投影格式改变虚拟边界位置。
除了360度视频之外,虚拟边界还可以用于逐步解码刷新(GDR),其主要用于极低延迟应用中。在极低延迟应用程序中,由于帧内编码图像的大尺寸,插入帧内编码图像作为随机接入点图像可能会导致不可接受的传输延迟。为了减少延迟,采用了GDR,其中通过在B/P图像中插入帧内编码区域来逐步刷新图像。为了防止错误传播,图像中刷新区域中的像素不能参考当前图像或参考图像的未刷新区域中的像素。因此,不能跨刷新区域和未刷新区域的边界应用环路滤波。利用上述虚拟边界方案,编码器可以将刷新区域和未刷新区域的边界设置为虚拟边界,然后可以不在该边界上应用环路滤波操作。
根据一些实施例,可以在序列参数集(SPS)或图像头(PH)中用信号通知虚拟边界。图像头传递特定图像的信息,并包含属于同一图像的所有条带(slice)共有的信息。PH可以包含与虚拟边界相关的信息。为每张图像设置一个PH。序列参数集包含与编码层视频序列(CLVS)有关的语法元素。SPS包含由整个编码层视频序列(CLVS)中的所有图像共享的序列级信息,并且可以提供有关位流包含的内容以及如何使用位流中的信息的大图像。在SPS中,首先用信号通知虚拟边界存在标志“sps_virtual_boundaries_present_flag”。如果该标志为真(true),则对于参考SPS的图像,会用信号通知虚拟边界的数量和每个虚拟边界的位置。如果“ps_virtual_boundaries_present_flag”为假(false),则在PH中,可以发出另一个虚拟边界存在标志“ph_virtual_boundaries_present_flag”。同样,如果“ph_virtual_boundaries_present_flag”是true,可以用信号通知与PH相关联的图像虚拟边界的数量和每个虚拟边界的位置。
虚拟边界的SPS语法如图5的表1所示。图5中的SPS语法的语义如下所示。
“sps_virtual_boundaries_present_flag”等于1指定虚拟边界的信息在SPS中被发信号通知。“sps_virtual_boundaries_present_flag”等于0指定虚拟边界的信息在SPS中未被发信号通知。当在SPS中存在信号通知的一个或多个虚拟边界时,参考SPS的图像中跨虚拟边界禁用环内滤波操作。环内滤波操作包括去块滤波器、采样自适应偏移滤波器和自适应环路滤波器操作。
“sps_num_ver_virtual_boundaries”指定SPS中存在的“sps_virtual_boundaries_pos_x[i]”语法元素的数量。当“sps_num_ver_virtual_boundaries”不存在时,推断其等于0。
“sps_virtual_boundaries_pos_x[i]”指定第i个垂直虚拟边界的位置,以亮度样本除以8为单位的第i个垂直虚拟边界的位置。“sps_virtual_boundaries_pos_x[i]”的值的范围在1至Ceil(pic_width_in_luma_samples÷8)–1,包含端值。
“sps_num_hor_virtual_boundaries”指定SPS中存在的“sps_virtual_boundaries_pos_y[i]”语法元素的数量。当“sps_num_hor_virtual_boundaries”不存在时,推断其等于0。
“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值范围在1至Ceil(pic_height_in_luma_samples÷8)–1,包含端值。
虚拟边界的PH语法如图6的表2示出。下面给出图6中的PH语法语义。
“ph_num_ver_virtual_boundaries”指定存在于PH中“ph_virtual_boundaries_pos_x[i]”语法元素的数量。当“ph_num_ver_virtual_boundaries”不存在时,推断其等于0。
参数VirtualBoundariesNumVer推导如下:
VirtualBoundariesNumVer=sps_virtual_boundaries_present_flag?:
sps_num_ver_virtual_boundaries:ph_num_ver_virtual_boundaries
“ph_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位的第i个垂直虚拟边界的位置。“ph_virtual_boundaries_pos_x[i]”的值的范围为1至Ceil(pic_width_in_luma_samples÷8)-1,包括端值。
以亮度样本为单位的垂直虚拟边界“VirtualBoundariesPosX[i]”的位置推导如下:
VirtualBoundariesPosX[i]=(sps_virtual_boundaries_present_flag?sps_virtual_boundaries_pos_x[i]:ph_virtual_boundaries_pos_x[i])*8
任意两个垂直虚拟边界之间的距离可以大于或等于CtbSizeY luma样本。
“ph_num_hor_virtual_boundaries”指定存在于PH中的“ph_virtual_boundaries_pos_y[i]”语法元素的数量。当“ph_num_hor_virtual_boundaries”不存在时,推断其等于0。
参数VirtualBoundariesNumHor推导如下:
VirtualBoundariesNumHor=sps_virtual_boundaries_present_flag?sps_num_hor_virtual_boundaries:ph_num_hor_virtual_boundaries.
“ph_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“ph_virtual_boundaries_pos_y[i]”的值的范围为1至Ceil(pic_height_in_luma_samples÷8)-1,包含端值。
以亮度样本为单位的水平虚拟边界“VirtualBoundariesPosY[i]的位置推导如下:
VirtualBoundariesPosY[i]=(sps_virtual_boundaries_present_flag?sps_virtual_boundaries_pos_y[i]:ph_virtual_boundaries_pos_y[i])*8。
任何两个水平虚拟边界之间的距离可以大于或等于CtbSizeY亮度样本。
环绕运动补偿是另一种360度视频编码工具。在传统的运动补偿中,当运动矢量参考参考图像的图像边界之外的样本时,通过从对应图像边界上的那些最近的邻居复制,应用重复填充来减小超出边界样本的值。对于360度视频,这种重复填充的方法不再合适,并且可能导致在重建的视口视频中被称为“接缝伪影”的视觉伪影。因为360度视频是在球体上采集的,并且天然地没有“边界”,在投影域中超出参考图像边界的参考样本总是可以从球形域中的相邻样本中获得。对于一般的投影格式,可能很难在球形域中导出相应的相邻样本,因为它涉及2D到3D和3D到2D的坐标转换,以及分数样本位置的样本插值。这个问题对于等矩形投影(ERP)或填充ERP(PERP)格式的左边界和右边界要简单得多,因为左图像边界之外的球形邻居可以从右图像边界内的样本中获得,反之亦然。鉴于ERP或PERP投影格式的广泛使用和相对容易实现,水平环绕运动补偿可用于提高ERP投影格式360视频编码的视觉质量。
水平环绕运动补偿过程如图7A所示。当参考块的一部分在投影域中参考图像的左侧(或右侧)边界之外时,取代重复填充,“边界外”部分取自参考图像内朝向投影域中右侧(或左侧)边界的相应球形邻居。重复填充仅用于顶部和底部图像边界。重复填充仅用于顶部和底部的图像边界。如图7B所示,水平环绕运动补偿可以与360度视频编码中经常使用的非规范填充方法相结合。这可以通过发信号通知高级语法元素指示环绕偏移量来实现,该偏移量应在填充之前设置为ERP图像宽度。此语法用于相应地调整水平环绕的位置。此语法不受左右图像边界上的特定填充量的影响,因此自然支持ERP图像的不对称填充(即,当左右填充不同时)。当参考样本在参考图像的左右边界之外时,水平环绕运动补偿为运动补偿提供了更有意义的信息。该工具不仅在速率失真性能方面改善了压缩性能,而且在减少接缝伪影和改善了重建的360度视频的主观质量方面改善了压缩性能。水平环绕运动补偿也可用于其他在水平方向上具有恒定采样密度的单面投影格式,例如调整后的等面积投影。
根据一些实施例,环绕运动补偿在SPS中被发信号通知。首先,用信号通知启用标志,如果为真,则用信号通知环绕偏移量。图8中示出了SPS语法,相应的语义在下面给出。
“sps_ref_wraparound_enabled_flag”等于1指定在帧间预测中应用水平环绕运动补偿。“sps_ref_wraparound_enabled_flag”等于0的指定不应用水平环绕运动补偿。当(CtbSize Y/MinCbSizeY 1)的值大于(pic_width_in_luma_samples/MinCbSizeY-l)时,其中“pic_width_in_luma_samples”是指参考SPS的任何图像参数集(PPS)中的“pic_width_in_luma_samples”的值,“sps_ref_wraparound_enabled_flag”的值等于0。
“sps_ref_wraparound_offset_minus1”加1指定用于计算以MinCbSizeY亮度样本为单位的水平环绕位置的偏移量。“ref_wraparound_offset_minus1”的值在(CtbSizeY/MinCbSizeY)+l至(pic_width_in_luma_samples/MinCbSizeY)-1的范围内,包括端值,其中“pic_width_in_luma_samples”是指参考SPS的任何PPS中的“pic_width_in_luma_samples”的值。
CtbSizeY是编码树块(CTB)的亮度大小,MinCbSizeY是亮度编码块的最小大小,“pic_width_in_luma_samples”是亮度样本中的图像宽度。
根据一些实施例,在SPS中信号通知图像序列内所有图像的宽度和高度的最大值,然后在每个PPS中,用信号通知当前图像的图像宽度和高度。图9的表4示出了用信号通知图像的宽度和高度的最大值的语法。图10的表5示出了用信号通知图像宽度和高度的语法。下面给出与图9和图10对应的语义。
“ref_pic_resampling_enabled_flag”等于I指定当解码参考SPS的编码层视频序列(CLVS)中的编码图像时可以应用参考图像重采样。ref_pic_resampling_enabled_flag等于0指定当解码参考SPS的CLVS中的图像时不应用参考图像重采样。例如,解码程序可以解码每个帧。如果解码程序确定当前帧的分辨率与参考图像的分辨率不同,则解码程序可以对参考图像执行适当的重采样,然后将生成的重采样参考图像用作当前帧的参考图像。也就是说,当允许在视频序列内改变图像空间分辨率时,需要对参考图像进行重采样,参考图像的适当重采样可以是对参考图像的下采样或上采样。
“pic_width_max_in_luma_samples”指定参考SPS的每个解码图像的以亮度样本为单位的最大宽度,“pic_width_max_in_luma_samples”可能不等于0,并且可能是Max(8,MinCbSizeY)的整数倍。
“pic_height_max_in_luma_samples”指定参考SPS的每个解码图像的以亮度样本单位的最大高度,,“pic_height_max_in_luma_samples”可能不等于0,并且可以是Max(8,MinCbSizeY)的整数倍。
“pic_width_in_luma_samples”指定参考PPS的每个解码图像以亮度样本为单位的宽度。“pic_width_in_luma_samples”可能不等于0。相反,“pic_width_in_luma_samples”可能是Max(8,MinCbSizeY)的整数倍,并且可能小于或等于“pic_width_max_in_luma_samples”。
当“subpics_present_flag”等于1或当“ref_pic_resamping_enabled_flag”等于0,“pic_width_in_luma_samples”的值等于“pic_width_max_in_luma_samples”。
“pic_height_in_luma_samples”指定参考PPS的每个解码图像以亮度样本为单位的高度。“pic_height_in_luma_samples”可能不等于0。相反,“pic_height_in_luma_samples”可能是Max(8,MinCbSizeY)的整数倍,并且可能小于或等于“pic_height_max_in_luma_samples”。
当“subpics_present_flag”等于1或当“ref_pic_resamping_enabled_flag”等于0,“pic_height_in_luma_samples”的值等于“pic_height_max_in_luma_samples”。
上述虚拟边界的SPS信号通知可能会导致一些模棱两可。特别地,在SPS中发出信号通知的“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的范围分别是从0到Ceil(pic_width_in_luma_samples÷8)-1和从0到Ceil(pic_height_in_luma_samples÷8)-1。然而,如上所述,“pic_width_in_luma_samples”和“pic_height_in_luma_samples”在PPS中被发信号,并且它们从一个PPS到另一个PPS可能是变化的。并不清楚是否应将“pic_width_in_luma_samples”和“pic_height_in_luma_samples”设置为“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的上限,因为可能有多个PPS参考相同的SPS。
此外,上述环绕运动补偿的SPS信号通知可能存在些问题。特别的,“sps_ref_wraparound_enabled_flag”和“sps_ref_wraparound_offset_minus1”是SPS中信号通知的语法元素,但是依赖于在PPS上发信号通知的“pic_width_in_luma_samples”的“sps_ref_wraparound_enabled_flag”存在一致性约束,“sps_ref_wraparound_offset_minus1”的范围也依赖于在PPS上发信号通知的“pic_width_in_luma_samples”。这些依赖导致一些问题。首先,通过所有相关联的PPS中的语法元素来限制SPS语法元素的值不是一种有效的方法,因为SPS比PPS的级别更高。此外,通常理解的是,高级语法不应参考低级语法。其次,根据当前的设计,只能在当参考SPS的序列中所有图像的宽度满足约束条件时,“sps_ref_wraparound_enabled_flag”只能为true。因此,即使整个序列中只有一个帧不满足约束条件,也不能使用环绕运动补偿。因此,仅仅由于一帧,就失去了对整个序列进行环绕运动补偿的益处。
本发明提供了解决与信号通知虚拟边界或环绕运动补偿相关联的问题的方法。下面详细描述与所公开的方法一致的一些示例性实施例。
在一些示例性实施例中,为了解决与虚拟边界的信号通知相关的上述问题,将“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的上限值更改为序列中图像的宽度和高度的最小值。因此,对于每个图像,在SPS中发信号通知的虚拟边界位置(“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”)不超出图像边界。
下面描述与这些实施例一致的语义。
“sps_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位的第i个垂直虚拟边界的位置。“sps_virtual_boundaries_pos_x[i]”的值在1至Ceil(pic_width_in_luma_samples÷8)-1范围内,包括端值,其中“pic_width_in_luma_samples”是指参考SPS的任何PPS中的“pic_width_in_luma_samples”的值。
“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值的在1和Ceil(pic_height_in_luma_samples÷8)-1的范围内,包括端值,其中“pic_height_in_luma_samples”是指参考SPS的任何PPS中的“pic_height_in_luma_samples”的值。
在一些示例性实施例中,为了解决与虚拟边界的信号通知相关的上述问题,“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的值的上限分别更改为“pic_width_max_in_luma_samples”和“pic_height_max_in_luma_samples,二者分别是序列中图像的宽度和高度的最大值。对于每个图像,如果在SPS中发信号通知的虚拟边界位置(“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”)超出图像边界,则虚拟边界在边界内被修剪或被丢弃。
下面描述与这些实施例一致的语义。
“sps_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位的第i个垂直虚拟边界的位置,“sps_virtual_boundaries_pos_x[i]”的值的范围是1到Ceil(pic_width_max_in_luma_samples÷8)-1,包含端值。
“sps_virtual_boundaies_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值的范围为1至Ceil(pic_height_max_in_luma_samples÷8)-1,包含端值。
作为示例,对于每个图像,在SPS中发信号通知的虚拟边界位置在当前图像边界内被修剪,在该示例中,导出的虚拟边界位置VirtualBoundariesPosX[i]和VirtualBoundariesPosY[i],以及虚拟边界的数量VirtualBoundariesNumVer和VirtualBoundariesNumHor推导如下:
VirtualBoundariesNumVer=sps_virtual_boundaries_present_flag?
sps_num_ver_virtual_boundaries:ph_num_ver_virtual_boundaries
VirtualBoundariesPosX[i]=(sps_virtual_boundaries_present_flag?
min(Ceil(pic_width_in_luma_samples÷8)–1,
sps_virtual_boundaries_pos_x[i])
:ph_virtual_boundaries_pos_x[i])*8
VirtualBoundariesNumHor=sps_virtual_boundaries_present_flag?
sps_num_hor_virtual_boundaries:ph_num_hor_virtual_boundaries
VirtualBoundariesPosY[i]=(sps_virtual_boundaries_present_flag?
min(Ceil(pic_width_in_luma_samples÷8)–1,
sps_virtual_boundaries_pos_y[i])
:ph_virtual_boundaries_pos_y[i])*8
任何两个垂直虚拟边界之间的距离可以是零,或者大于或等于CtbSize Y亮度样本。
任何两个水平虚拟边界之间的距离可以是零,或者大于或等于CtbSize Y亮度样本。
作为另一个示例,对于每个图像,如果在SPS中用信号通知的虚拟边界位置超出当前图像边界,则在当前图像中不使用虚拟边界。导出的虚拟边界位置VirtualBoundariesPosX[i]和VirtualBoundariesPosY[i],以及虚拟边界的数量VirtualBoundariesNumVer和VirtualBoundariesNumHor的推导如下。
或者,导出的虚拟边界位置“VirtualBoundariesPosX[i]”,“VirtualBoundariesPosY[i]”,以及虚拟边界的数量VirtualBoundariesNumVer和VirtualBoundariesNumHor如下导出。
在一些示例性实施例中,为了解决与虚拟边界的信号通知相关的上述问题,“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的上限值的分别更改为“pic_width_max_in_luma_samples”和“pic_height_max_in_luma_samples”,二者分别是序列中图像的宽度和高度的最大值。对于每个图像,如果虚拟边界位置在SPS被中信号通知,(“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”)根据SPS中用信号发送的最大图像宽度和高度与PPS中用信号发送的当前图像宽度和高度之间的比率进行缩放。
与这些实施例一致的语义描述如下。
“sps_virtual_boundaries_pos_x[i]”指定了以亮度样本除以8为单位第i个垂直虚拟边界的位置。“sps_virtual_boundaries_pos_x[i]”的值的范围是1到Ceil(pic_width_max_in_luma_samples÷8)-1,包含端值。
“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值的范围为1至Ceil(pic_height_max_in_luma_samples÷8)-1,包含端值。
为了导出每个图像的虚拟边界位置,首先计算缩放比例,然后按如下方式缩放SPS中信号发送的虚拟边界位置:
VBScaleX=((pic_width_max_in_luma_samples<<14)+(pic_width_in_luma_samples>>1))/pic_width_in_luma_samples
VBScaleY=((pic_height_max_in_luma_samples<<14)+(pic_height_in_luma_samples>>1))/pic_height_in_luma_samples
SPSVirtualBoundariesPosX[i]=(sps_virtual_boundaries_pos_x[i]×VBScaleX+(1<<13))>>14
SPSVirtualBoundariesPosY[i]=(sps_virtual_boundaries_pos_y[i]×VBScaleY+(1<<13))>>14
例如,“SPSVirtualBoundariesPosX[i]”和
“SPSVirtualBoundariesPosY[i]”可以如下进一步四舍五入到8像素网格。
SPSVirtualBoundariesPosX[i]=((SPSVirtualBoundariesPosX[i]+4)>>3)<<3
SPSVirtualBoundariesPosY[i]=((SPSVirtualBoundariesPosY[i]+4)>>3)<<3
最后,导出的虚拟边界位置“VirtualBoundariesPosX[i]”和“VirtualBoundariesPosY[i]”,以及虚拟边界的数量“VirtualBoundariesNumVer”和“VirtualBoundariesNumHor”如下导出。
在一些示例性实施例中,为了解决与虚拟边界的信号通知相关的上述问题,以互斥的方式使用序列级虚拟边界信号通知以及图像宽度和高度变化。例如,当虚拟边界自SPS被用信号通知时,图像宽度和高度不能在序列中改变。当图像宽度和高度在序列中改变时,虚拟边界不能在SPS中用信号通知。
在本实施例中,“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的值的上限分别改变为“pic_width_max_in_luma_samples”和“pic_width_max_in_luma_samples”,它们分别是序列中图像的宽度和高度的最大值。
与本实施例一致的“sps_virtual_boundaries_pos_x[i]”和“sps_virtual_boundaries_pos_y[i]”的语义如下。
“sps_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位的第i个垂直虚拟边界的位置。“sps_virtual_boundaries_pos_x[i]”的值的范围为1至Ceil(pic_width_max_in_luma_samples÷8)-1,包含端值。
“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值的范围为1和Ceil(pic_height_max_in_luma_samples÷8)-1,包含端值。
作为示例,“pic_width_in_luma_samples”和“pic_height_in_luma_samples”的位流一致性要求可实施如下。
当(1)“subpics_present_flag”等于1,或(2)“ref_pic_resampling_enabled_flag”等于0,或者(3)“sps_virtual_boundaries_present_flag”等于1,则“pic_width_in_luma_samples”的值等于“pic_width_max_in_luma_samples”。根据此约束的第三个条件(即“sps_virtual_boundaries_present_flag”等于1),当SPS中存在虚拟边界时,序列中的每个图像具有相同的宽度,该宽度等于序列中图像的最大宽度,
当(1)“subpics_present_flag”等于1,或(2)“ref_pic_resampling_enabled_flag”等于0,或者(3)“sps_virtual_boundaries_present_flag”等于1,则“pic_height_in_luma_samples”的值等于“pic_height_max_in_luma_samples”。根据此约束的第三个条件(即“sps_virtual_boundaries_present_flag”等于1),当SPS中存在虚拟边界时,序列中的每个图像具有相同的高度,该高度等于序列中图像的最大高度。
作为另一个示例,“pic_width_in_luma_samples”和“pic_height_in_luma_samples”的位流一致性要求可以实施如下。
当(1)“subpics_present_flag”等于1,或(2)“ref_pic_resampling_enabled_flag”等于0,或(3)“sps_num_ver_vritual_boundaries”不等于0时,则“pic_width_in_luma_samples”的值等于“pic_width_max_in_luma_samples”。根据此约束的第三个条件(即“sps_num_ver_vritual_boundaries”不等于0),如果垂直虚拟边界的数量大于0(即,至少有一个垂直虚拟边界),序列中的每个图像具有相同的宽度,该宽度等于序列中图像的最大宽度。
当(1)“subpics_present_flag”等于1时,或(2)“ref_pic_resampling_enabled_flag”等于0,或者(3)“sps_num_hor_vritual_boundaries”不等于0,则,“pic_height_in_luma_samples”的值等于“pic_height_max_in_luma_samples”。根据该约束的第三个条件(即,“sps_num_hor_vritual_boundaries”不等于0),如果垂直虚拟边界的数量大于0(即,存在至少一个垂直的虚拟边界),则序列中的每个图像具有相同的宽度,该宽度等于序列中图像的最大宽度。
作为另一个示例,“sps_virtual_bounda的ries_present_flag”位流一致性要求可以实施如下:位流一致性的要求是,当“ref_pic_resampling_enabled_flag”为1时,“sps_virtual_boundaries_present_flag”为0。根据此约束,如果启用了参考图像重采样,则SPS中不应存在虚拟边界。这种约束的原理如下。当当前图像与参考图像具有不同的分辨率时使用参考图像重采样。当允许在序列内改变图像分辨率时,虚拟边界的位置也可以在图像之间改变,因为不同的图像可能具有不同的分辨率。因此,虚拟边界位置可以在图像级别(例如,PPS)被信号通知。虚拟边界的序列级信号通知(即,在SPS中发出信号通知)是不合适的。
作为另一个例子,在“ref_pic_resampling_enabled_flag”上有条件地发出信号通知“sps_virtual_boundaries_present_flag”。例如,“ref_pic_resampling_enabled_flag”等于0指定当在参考SPS的CLVS中解码图像时,不应用参考图像的重采样,并且基于“!ref_pic_resampling_enabled_flag”等于1,用信号通知“sps_virtual_boundaries_present_flag”。语法如图11所示,表1(图5)中的语法的变化以斜体示出。相关的语义描述如下。
“sps_virtual_boundaries_present_flag”等于1指定虚拟边界的信息在SPS中被信号发送。“sps_virtual_boundaries_present_flag”等于0指定虚拟边界的信息不在SPS中被信号发送。当在SPS中存在一个或多个虚拟边界时,跨参考SPS的图像中的虚拟边界禁用环内滤波操作。当“sps_virtual_boundaries_present_flag”不存在时,其值被推断为0。环内滤波操作包括去块滤波器、采样自适应偏移滤波器和自适应环路滤波器操作。
作为另一个例子,在“sps_virtual_boundaries_present_flag”上有条件地发信号通知“ref_pic_resampling_enabled_flag”。所述语法在图12中示出,用斜体和删除线示出了表1(图5)中语法的变化。相关的语义描述如下。
“ref_pic_resampling_enabled_flag”等于1指定当在参考SPS的CLVS中解码编码图像时可以应用参考图像重采样。“ref_pic_resampling_enabled_flag”等于0指定当在参考SPS的CLVS中解码图像时不应用参考图像重采样。当“ref_pic_resampling_enabled_flag”不存在时,其值推断为0。
进一步地,为了解决上述与环绕运动补偿的信号通知“sps_ref_wraparound_enabled_flag”只能在参考SPS的序列中所有图像的宽度满足约束条件时为真的问题,本公开提供以下实施例。
在一些实施例中,对环绕运动补偿启用能标志和环绕偏移量的约束被改变为取决于在SPS中被用信号通知的最大图像宽度。并且在图像级别,引入图像宽度的检查。环绕只能应用于宽度满足条件的图像。对于宽度未能满足条件的那些图像,即使“sps_ref_wraparound_enabled_flag”为真,也会关闭环绕。通过这样做,没有必要限制在SPS中用信号通知的“sps_ref_wraparound_enabled_flag”和“sps_ref_wraparound_offset_minus1”使用在PPS中用信号通知的图像宽度。该语法没有改变并且“sps_ref_wraparound_enabled_flag”和“sps_ref_wraparound_offset_minus1”的语义如下。
“sps_ref_wraparound_enabled_flag”等于1指定可以在帧间预测中应用水平环绕运动补偿。sps_ref_wraparound_enabled_flag等于0指定不应用水平环绕运动补偿。当(CtbSizeY/MinCbSizeY 1}的值大于(pic_width_max_in_luma_samples/MinCbSizeY 1)时,sps_ref_wraparound_enabled_flag的值应等于0。
“sps_ref_wraparound_offset_minus1”加1指定用于计算以MinCbSizeY亮度样本为单位的水平环绕位置的偏移量的最大值。ref_wraparound_offset_minus1的值应在范围(CtbSizeY/MinCbSizeY)+1至(pic_width_max_in_luma_samples/MinCbSizeY)-1,包括端值。
其中,pic_width_max_in_luma_samples是以亮度样本为单位的参考SPS的每个解码图像的最大宽度,如VVC草案7。CtbSizeY和MinCbSizeY的定义与VVC草案7相同。
对于序列的每个图像,变量“PicRefWraparoundEnableFlag”定义如下。
PicRefWraparoundEnableFlag=sps_ref_wraparound_enabled_flag&&sps_ref_wraparound_offset_minus1<=(pic_width_in_luma_samples/MinCbSizeY-1))
其中“pic_width_in_luma_samples”是指参考PPS的图像的宽度,其中“pic_width_in_luma_samples”被用信号通知,如VVC草案7。CtbSizeY和MinCbSizeY的定义与VVC草案7中相同。
变量“PicRefWraparoundEnableFlag”用于确定是否可以为当前图像启用环绕MC。
在另一种方式中,对于序列的每个图像,两个变量“PicRefWraparoundEnableFlag”和“PicRefWraparoundOffset”定义如下。
PicRefWraparoundEnableFlag=sps_ref_wraparound_enabled_flag&&((ctbSizeY/MinCbSizeY+1)<=(pic_width_in_luma_samples/MinCbSizeY-1))
PicRefWraparoundOffset=min(sps_ref_wraparound_ofset_minus+1,(pic_width_in_luma_samples/MinCbSizeY))
其中“pic_width_in_luma_samples”是指参考PPS的图像宽度,其中“pic_width_in_luma_samples”被用信号通知,如VVC草案7。CtbSizeY和MinCbSizeY的定义与VVC草案7中相同。
变量“PicRefWraparoundEnableFlag”用于确定是否可以为当前图像启用环绕MC。如果是这样,则可以在运动补偿过程中使用偏移量“PicRefWraparoundOffset”。
在一些实施例中,提供了环绕运动补偿与序列级虚拟边界信号通知和图像宽度改变的互斥使用。当启用环绕运动补偿时,无法在序列中更改图像宽度。当图像宽度在序列中被改变时,环绕运动补偿被禁用。
作为示例,与本实施例一致的“sps_ref_wraparound_enabled_flag”和“sps_ref_wraparound_offset_minus1”的语义描述如下。
“sps_ref_wraparound_enabled_flag”等于1指定在帧间预测中应用水平环绕运动补偿。“sps_ref_wraparound_enabled_flag”等于0指定不应用水平环绕运动补偿。当(CtbSizeY/MinCbSizeY+1)的值大于(pic_width_max_in_luma_samples/MinCbSizeY-1)时,sps_ref_wraparound_enabled_flag可能等于0。
“sps_ref_wraparound_offset_minus1”加1指定用于计算以MinCbSizeY亮度样本为单位的水平环绕位置的偏移量。“ref_wraparound_offset_minus1”的值的范围可以是(CtbSizeY/MinCbSizeY)+1至(pic_width_max_in_luma_samples/MinCbSizeY)-1,包含端值。
“pic_width_in_luma_samples”和“pic_height_in_luma_samples”的位流一致性要求可以实施如下。
当“subpics_present_flag”等于1或“ref_pic_resampling_enabled_flag”等于0或“sps_ref_wraparound_enabled_flag”等于1,“pic_width_in_luma_samples”的值等于”pic_width_max_in_luma_samples”
作为另一个示例,可以实施“sps_ref_wraparound_enabled_flag”的位流一致性要求。下面描述与本实施例一致的“sps_ref_wraparound_enabled_flag”和“sps_ref_wraparound_offset_minus1”的语义。
“sps_ref_wraparound_enabled_flag”等于1指定在帧间预测中应用水平环绕运动补偿。“sps_ref_wraparound_enabled_flag”等于0指定不应用水平环绕运动补偿。当(CtbSizeY/MinCbSizeY+1)的值大于(pic_width_max_in_luma_samples/MinCbSizeY-1)时,sps_ref_wraparound_enabled_flag的值等于0,
当ref_pic_resampling_enabled_flag为1时,“sps_ref_wraparound_enabled_flag”可能为0。ref_pic_resampling_enabled_flag指定是否启用参考重采样。参考重采样用于当参考图像的分辨率与当前图像的分辨率不同时对参考图像进行重采样。因此,在图像级别(例如,PPS,PH),当参考图像的分辨率与当前图像不同时,不使用环绕运动补偿来预测当前图像。
“sps_ref_wraparound_offset_minus1”加1指定用于计算以MinCbSizeY亮度样本为单位的水平环绕位置的偏移量。
“ref_wraparound_offset_minusl”的值在(CtbSizeY/MinCbSizeY)1至(pic_width_max_in_luma_samples/MinCbSizeY)-1的范围内,包含端值。
作为另一个示例,在“ref_pic_resampling_enabled_flag”上有条件地用信号通知“sps_ref_wraparound_enabled_flag”。所述语法在图13中示出,语法的变化在表3(图8)中以斜体示出。相关的语义描述如下。
“sps_ref_wraparound_enabled_flag”等于1”指定在帧间预测中应用水平环绕运动补偿。“sps_ref_wraparound_enabled_flag”等于0指定不应用水平环绕运动补偿。当(CtbSizeY/MinCbSizeY+1}的值大于(pic_width_max_in_luma_samples/MinCbSizeY 1)时,“sps_ref_wraparound_enabled_flag”的值等于0。当“sps_ref_wraparound_enabled_flag”不存在,推断其值为0。
“sps_ref_wraparound_offset_minus1”加1指定用于计算以MinCbSizeY亮度样本为单位的水平环绕位置的偏移量。ref_wraparound_offset_minus1的值在(CtbSizeY/MinCbSizeY)+1至(pic_width_max_in_luma_samples/MinCbSizeY)-1的范围内,包含端值。
作为示例,在“sps_ref_wraparound_enabled_flag”上有条件地用信号通知“ref_pic_resampling_enabled_flag”。其语法如图14的表9所示。在图14中,语法的变化表3(图8)中的以斜体和删除线示出。相关语义如下。
“ref_pic_resampling_enabled_flag”等于1的指定当在参考SPS的CLVS中解码编码图像时可以应用参考图像重采样。ref_pic_resampling_enabled_flag等于0指定当在参考SPS的CLVS中解码图像时不应用参考图像重采样。当ref_pic_resampling_enabled_flag不存在时,推断其值为0。
图15示出了与本公开的一些实施例一致的示例性方法1500的流程图。在一些实施例中,方法1500可以由编码器、装置(例如,图4的装置400)的一个或多个软件或硬件组件来执行。例如,处理器(例如,图4的处理器402)可以执行方法1500。在一些实施例中,方法1500可以由包含在计算机可读介质中的计算机程序产品来实现,所述计算机程序产品包括由计算机(例如,图4的装置400)执行的计算机可执行指令,诸如程序代码。
可以将虚拟边界设置为用于360度视频或逐步解码刷新(GDR)编码的编码工具之一,使得可以禁用环内滤波以防止错误和伪影。如图15所示的方法所示。
在步骤1501中,接收包括图像序列的位流。图像序列可以是一组图像。如所描述的,彩色图像的基本处理单元可以包括表示消色差亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr)以及相关联的语法元素,其中亮度和色度分量可以具有基本处理单元的相同大小。亮度和色度分量在某些视频编码标准(例如,H.265/HEVC或H.266/VVC)中可以被称为的“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。
在步骤1503中,根据接收到的流确定是否在序列级别(即,在SPS中)用信号通知虚拟边界。当在序列级别用信号通知虚拟边界时,对于参考SPS的图像,用信号通知多个虚拟边界和每个虚拟边界的位置。
虚拟边界可以在序列参数集(SPS)或图像头(PH)中发出信号。在SPS中,首先用信号通知虚拟边界存在标志“sps_virtual_boundaries_present_flag”,如果该标志为真,则用信号通知用于参考SPS的图像的虚拟边界的数量和每个虚拟边界的位置。
在步骤1505中,可选地,响应于在该组图像的序列级别未用信号通知虚拟边界,是否在图像级别(例如,PPS或PH)用信号通知该组图像的一图像的虚拟边界根据接收到的流确定。例如,如果“sps_virtual_boundaries_present_flag”为false,则在PH中,可以用信号通知另一个虚拟边界存在标志“ph_virtual_boundaries_present_flag”。类似地,如果“ph_virtual_boundaries_present_flag””为真,则对于与PH相关联的图像,可以用信号通知虚拟边界的数量和每个虚拟边界的位置。步骤1505是可选的。在一些实施例中,该方法可以包括步骤1505,响应于在序列级别未用信号通知虚拟边界。在一些实施例中,响应于在序列级别未用信号通知虚拟边界,该方法可以在不执行步骤1505的情况下结束。响应于在图像级用信号通知虚拟边界,该方法进行到用于确定虚拟边界的位置的步骤1507。
在一些实施例中,可以确定是否满足指示不在序列级别用信号通知虚拟边界的任何条件。如以上在示例中所述,可以确定图5表1中的“sps_virtual_boundaries_present_flag”的值。并且该值为1表示在序列级别虚拟边界被发出信号通知。但是,还有其他条件表明未在序列级别应用虚拟边界。指示没有序列级别的虚拟边界被信号通知的第一个条件是启用参考重采。第二个条件是允许更改该组图像中图像的分辨率。满足这两个条件中的任何一个,虚拟边界都不会在序列级别被发信号通知。当这两个条件都不满足时,并且如在示例中,“sps_virtual_boundaries_present_flag”的值被确定为1,则确定在针对该组图像在序列级处用信号通知虚拟信号。该方法进行到用于确定虚拟边界的位置的步骤1507。
在一些实施例中,根据接收到的位流确定是否针对图像序列启用了参考重采样。响应于针对图像序列启用了参考重采样,虚拟边界不在序列级别被用信号通知。
解码程序可以解码每个帧。如果解码程序确定当前帧的分辨率与参考图像的分辨率不同,则解码程序可以对参考图像执行适当的重采样,然后使用所生成的重采样参考块作为参考块来解码当前帧中的块。当允许在视频序列内改变图像空间分辨率时,需要对参考图像进行重采样。启用重采样后,可以允许更改分辨率或不允许更改分辨率。当图像的分辨率被允许改变时,因为需要重采样,因而重采样被启用。参考图像的合适的重采样可以是参考图像的下采样或上采样。例如,如图9所示“ref_pic_resampling_enabled_flag”等于1指定当解码参考SPS的CLVS中的编码的图像时可以应用参考图像重采样。ref_pic_resampling_enabled_flag等于0指定当解码在参考SPS的CLVS中图像时不应用参考图像重采样。
例如,图5的表1中的“sps_virtual_boundaries_present_flag”可以在“ref_pic_resampling_enabled_flag”上有条件地被发信号通知。可以确定“ref_pic_resampling_enabled_flag”的值,“ref_pic_resampling_enabled_flag”等于0指定解码在参考SPS的CLVS中图像时不应用参考图像重采样。当“ref_pic_resampling_enabled_flag”为1时,“sps_virtual_boundaries_present_flag”为0。
在一些实施例中,确定是否允许改变图像序列中的图像的分辨率。响应于所述分辨率被允许改变,确定所述虚拟边界没有在所述序列级别被发信号通知。
在当前图像具有与参考图像不同的分辨率时,使用参考图像重采样。当允许在序列内改变图像分辨率时,因为不同的图像可能具有不同的分辨率,虚拟边界的位置也可以在图像之间改变。因此,虚拟边界位置可以在图像级别(例如,PPS和PH)被信号通知,而虚拟边界的序列级别的信号通知(即,在SPS中被信号通知)是不合适的。因此,当允许改变图像分辨率时,确定虚拟边界在序列级不被发信号通知,如果同时启用了重采样但不允许改变图像分辨率,则不对虚拟边界信号通知施加约束。
在一些实施例中,响应于针对图像序列启用参考重采样,确定针对图像序列禁用环绕运动补偿。
例如,确定图13中的“ref_pic_resampling_enabled_flag”的值为,“sps_ref_wraparound_enabled_flag”为0,并且不应用水平环绕运动补偿。“ref_pic_resampling_enabled_flag”指定是否启用参考重采样。参考重采样用于当参考图像的分辨率与当前图像的分辨率不同时对参考图像进行重采样。在图像级别(例如,PPS),在该示例中,当参考图像的分辨率与当前图像不同时,不使用环绕运动补偿来预测当前图像。如果确定“ref_pic_resampling_enabled_flag”的值为0,“sps_ref_wraparound_enabled_flag”为1,并应用水平环绕运动补偿。
在一些实施例中,响应于允许改变图像序列中的图像的分辨率,确定对于图像序列禁用环绕运动补偿。
在步骤1507中,响应于在序列级用信号通知虚拟边界,确定序列的虚拟边界的位置。该位置由基于序列中图像的宽度和高度的范围限定。虚拟边界可以包括垂直边界和水平边界。虚拟边界的位置可以包括垂直边界的位置点和水平边界的位置点。例如,如图5的表1所示,“sps_virtual_boundaries_pos_x[i]”指定以亮度样本除以8位单位第i个垂直虚拟边界的位置,而“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。
在一些实施例中,位置的垂直范围小于或等于序列中的图像的每个图像所允许的最大宽度,并且水平范围小于或等于该组图像中的每个图像所允许的最大高度。最大宽度和最大高度在接收到的流中被用信号发送。语义中的示例如下。
“sps_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位的第i个垂直虚拟边界的位置,“sps_virtual_boundaries_pos_x[i]”的值在1至Ceil(pic_width_max_in_luma_samples÷8)-1的范围内,包括端值。
“sps_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“sps_virtual_boundaries_pos_y[i]”的值在1至Ceil(pic_height_max_in_luma_samples÷8)-1的范围内,包括端值。
当在SPS中存在虚拟边界时,即,“sps_virtual_boundaries_present_flag”等于1。序列中的每个图像具有相同的宽度,该宽度等于序列中图像的最大宽度。
在一些实施例中,响应于该组图像中的一个图像在图像级别处用信号通知虚拟边界,可以确定该一个图像的虚拟边界的位置。可以针对该组图像中的一个或多个图像,用信号通知一个或多个边界。例如,如图6中PH语法的语义中所示,“ph_num_ver_virtual_boundaries”指定存在于PH中的“ph_virtual_boundaries_pos_x[i]”语法元素的数量。当“ph_num_ver_virtual_boundaries”不存在时,推断其等于0。
“ph_virtual_boundaries_pos_x[i]”指定以亮度样本除以8为单位第i个垂直虚拟边界的位置。“ph_virtual_boundaries_pos_x[i]”的值的范围为1至Ceil(pic_width_in_luma_samples÷8)-1,包含端值。
“ph_virtual_boundaries_pos_y[i]”指定以亮度样本除以8为单位的第i个水平虚拟边界的位置。“ph_virtual_boundaries_pos_x[i]”的值的范围为1至Ceil(pic_height_in_luma_samples÷8)-1,包含端值
如所述,在类似360度视频的应用中,特定投影格式的布局通常具有多个面。例如,MPEG-I第2部分:全向媒体格式(OMAF)标准化了基于立方体地图的投影格式,名为CMP,它有六个面。对于包括多个面的那些投影格式,无论使用哪种紧凑的帧封装布置,在帧封装图像中的两个或更多个相邻的面之间都会出现不连续性。如果跨此不连续性执行环内滤波操作,则渲染后在重建的视频中可能会看到面接缝伪影。为了减轻面部接缝伪影,必须在帧封装图像中的跨不连续性处禁用环内滤波操作。可以使用虚拟边界,在该虚拟边界上禁用了环路滤波操作。编码器可以将不连续的边界设置为虚拟边界,因此不能在该不连续的边界上应用环路滤波器。除了360度视频之外,虚拟边界还可以用于逐步解码刷新(GDR),其主要用于极低延迟应用中。在极低延迟应用中,由于帧内编码图像尺寸大,插入帧内编码图像作为随机接入点图像可能导致不可接受的传输延迟。为了减少延迟,采用了GDR,其中通过在B/P图像中插入帧内编码区域来逐步刷新图像。为了防止错误传播,图像中刷新区域的像素不能参考当前图像或参考图像的未刷新区域中的像素。因此,不能跨刷新区域和未刷新区域的边界应用环路滤波。通过上述虚拟边界方案,编码器可以将刷新区域和未刷新区域的边界设置为虚拟边界,然后在该边界上不应用环路滤波操作。
在步骤1509中,禁用跨图像的虚拟边界的环路滤波操作(例如,图3A中的环路滤波阶段232)。当在SPS中存在一个或多个信号通知的虚拟边界时,可以跨参考SPS的图像中的虚拟边界禁用环内滤波操作。环内滤波操作包括去块滤波器、采样自适应偏移滤波器和自适应环路滤波器操作。
根据本公开的一些实施例,提供了另一示例性方法1600。该方法可以由编码器、一装置(例如,图4的装置400)的一个或多个软件或硬件组件来执行。例如,处理器(例如,图4的处理器402)可以执行方法1600。在一些实施例中,方法1600可以由包含在计算机可读介质中的计算机程序产品实现,包括由计算机(例如,图4的装置400)执行的计算机可执行指令,例如程序代码。该方法可以包括以下步骤。
在步骤1601中,接收包括图像序列的位流。所述图像序列可以是一组图像。如所描述的,彩色图像的基本处理单元可以包括表示消色差亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr)以及相关联的语法元素,其中亮度和色度分量可以具有与基本处理单元的相同大小。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度和色度分量可以被称为“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。
在步骤1603中,根据接收到的位流确定是否对所述图像序列启用参考重采样。
在步骤1605中,响应于针对所述图像序列启用参考重采样,确定针对所述图像序列禁用环绕运动补偿。
例如,确定图13中的“ref_pic_resampling_enabled_flag”的值为1,“sps_ref_wraparound_enabled_flag”为0,不应用水平环绕运动补偿。“ref_pic_resampling_enabled_flag”指定是否启用参考重采样。参考重采样用于在参考图像的分辨率与当前图像的分辨率不同时对参考图像进行重采样。在图像级别(例如,PPS),在本示例中,当参考图像的分辨率与当前图像不同时,不使用环绕运动补偿来预测当前图像。如果确定“ref_pic_resampling_enabled_flag”的值为0。“sps_ref_wraparound_enabled_flag”为1,应用水平环绕运动补偿。
相应地,在步骤1703(步骤1603的替代步骤)中,确定图像序列的参考图像的分辨率是否与图像序列的当前图像的分辨率不同。
在步骤1705(步骤1605的替代步骤)中,,响应于图像序列的参考图像的分辨率与图像序列的当前图像的分辨率不同,确定对当前图像禁用环绕运动补偿。
在一些实施例中,还提供了包括指令的非暂时性计算机可读存储介质,并且所述指令可以由设备(诸如所公开的编码器和解码器)执行,用于执行上述方法。非暂时性介质的常见形式包括,例如,软盘,柔性盘,硬盘、固态硬盘、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM或任何其他闪存、NVRAM、高速缓存、寄存器、任何其他存储芯片或盒式磁带以及其联网版本。该设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和/或存储器。
可以使用以下条款进一步描述所公开的实施例:
1、一种方法,包括:
接收一组图像;
确定所述组中的多个图像的多个宽度和高度;以及
基于所述多个宽度和高度,确定所述组图像的一虚拟边界的位置。
2、根据条款1所述的方法,还包括:
确定所述多个图像的确定的多个宽度和高度的最小值,其中基于所述多个宽度和高度确定所述组图像的所述虚拟边界的位置还包括:
基于所述最小值,确定所述组图像的所述虚拟边界的位置。
3、根据条款1所述的方法,还包括:
确定所述多个图像的所确定的多个宽度和高度的最大值,其中基于所述多个宽度和高度确定所述组图像的所述虚拟边界的位置还包括:
基于所述最大值确定所述组图像的所述虚拟边界的位置。
4、根据条款1所述的方法,还包括:
确定所述组中的第一图像的宽度是否满足给定条件;以及
响应于确定所述第一图像的宽度满足所述给定条件,对所述第一图像禁用水平环绕运动补偿。
5、根据条款1所述的方法,还包括:
对跨所述组图像的虚拟边界禁用环内滤波操作。
6、根据条款1所述的方法,还包括:
确定是否已经对所述组中的第一图像执行了重采样;
响应于确定未对所述第一图像执行重采样,对所述第一图像禁用所述虚拟边界的信号通知或环绕运动补偿中的至少一个。
7、根据条款1所述的方法,其中
在序列参数集(SPS)或图像头(PH)中的至少一个中,用信号通知所述虚拟边界的位置。
8、一种装置,包括:
存储器,存储有一组指令;以及
一个或多个处理器,被配置为执行所述组指令以使所述装置执行:
接收一组图像;
确定所述组中的多个图像的多个宽度和高度;以及
基于所述多个宽度和高度,确定所述组图像的一虚拟边界的位置。
9、根据条款8所述的装置,其中所述一个或多个处理器被配置为执行所述组指令以使所述装置进一步执行:
确定所述多个图像的多个宽度和高的最小值,其中基于所述多个宽度和高度来确定所述组图像的所述虚拟边界的位置还包括:
基于所述最小值,确定所述组图像的所述虚拟边界的位置。
10、根据条款8所述的装置,其中所述一个或多个处理器被配置为执行所述组指令以使所述装置进一步执行:
确定所述多个图像的所确定的多个宽度和高度的最大值,其中基于所述多个宽度和高度确定所述组图像的所述虚拟边界的位置还包括:
基于所述最大值,确定所述组图像的所述虚拟边界的位置。
11、根据条款8所述的装置,其中所述一个或多个处理器被配置为执行所述组指令以使所述装置进一步执行:
确定所述组中的第一图像的宽度是否满足给定条件;以及
响应于确定所述第一图像的宽度满足所述给定条件,对所述第一图像禁用水平环绕运动补偿。
12、根据条款8所述的装置,其中所述一个或多个处理器被配置为执行所述组指令以使所述装置进一步执行:
对跨所述组图像的虚拟边界禁用环内滤波操作。
13、根据条款8所述的装置,其中所述一个或多个处理器被配置为执行所述组指令以使所述装置进一步执行:
确定是否已经对所述组中的第一图像执行了重采样;
响应于确定未对所述第一图像执行重采样,对所述第一图像禁用所述虚拟边界的信号通知或环绕运动补偿中的至少一个。
14、根据条款8所述的设备,其中
在序列参数集(SPS)或图像头(PH)中的至少一个中,用信号通知所述虚拟边界的位置。
15、一种非暂时性计算机可读介质,存储有一组指令,所述组指令可由计算机的至少一个处理器执行以使所述计算机执行一视频处理方法,所述方法包括:
接收一组图像;
确定所述组中的多个图像的多个宽度和高度;以及
基于所述多个宽度和高度,确定所述组图像的一虚拟边界的位置。
16、根据条款15所述的非暂时性计算机可读介质,其中所述组指令可由所述计算机执行以使所述计算机进一步执行:
确定所述多个图像的所确定的多个宽度和高度的最小值,其中基于所述多个宽度和高度确定所述组图像的所述虚拟边界的位置还包括:
基于所述最小值,确定所述组图像的所述虚拟边界的位置。
17、根据条款15所述的非暂时性计算机可读介质,其中所述组指令可由所述计算机执行以使所述计算机进一步执行:
确定所述多个图像的所确定的多个宽度和高度的最大值,其中基于所述多个宽度和高度确定所述组图像的所述虚拟边界的位置还包括:
基于所述最大值确定所述组图像的虚拟边界的位置。
18、根据条款15所述的非暂时性计算机可读介质,其中所述组指令可由所述计算机执行以使所述计算机进一步执行:
确定所述组中的第一图像的宽度是否满足给定条件;以及
响应于确定所述第一图像的宽度满足所述给定条件,对所述第一图像禁用水平环绕运动补偿。
19、根据条款15所述的非暂时性计算机可读介质,其中所述组指令可由所述计算机执行以使所述计算机进一步执行:
对跨所述组图像的虚拟边界禁用环内滤波操作。
20、根据条款15所述的非暂时性计算机可读介质,其中所述组指令可由所述计算机执行以使所述计算机进一步执行:
确定是否已经对所述组中的第一图像执行了重采样;
响应于确定未对所述第一图像执行重采样,对所述第一图像禁用所述虚拟边界的信号通知或环绕运动补偿中的至少一个。
21、根据条款15所述的非暂时性计算机可读介质,其中,在序列参数集(SPS)或图像头(PH)中的至少一个中,用信号通知所述虚拟边界的位置。
应该注意的是,本文中的诸如“第一”和“第二”的关系术语仅用于将实体或操作与另一实体或操作区分开来,而不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,词语“包括”、“具有”、“包含”和“包括”和其他类似的形式在含义上是等效的并且是开放式的,在这些词语中的任何一个后面的一个或多个项目并不意味着是这样一个或多个项目的详尽列表,或者意味着仅限于列出的一个或多个项目。
如本文所用,除非另有特别说明,术语“或”包括所有可能的组合,除非不可行。例如,如果声明数据库可包括A或B,则除非另有明确声明或不可行,否则数据库可包括A、或B、或A和B。作为第二示例,如果声明数据库可以包括A、B或C,则除非另有明确说明或不可行,否则数据库可以包括A、或B、或C、或A和B、或A和C、或B和C、或A,B和C。
应当理解,上述实施例可以通过硬件、或软件(程序代码)、或硬件和软件的组合来实现。如果通过软件实现,则可以将其存储在上述计算机可读介质中。该软件在由处理器执行时可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以通过硬件、或软件、或硬件和软件的组合来实现。本领域普通技术人员还将理解,可以将上述多个模块/单元组合为一个模块/单元,并且可以将上述模块/单元中的每一个进一步划分为多个子模块/子单元。
在前面的说明书中,已经参考许多具体细节描述了实施例,这些具体细节可以随实施而变化。可以对所描述的实施例进行某些修改和改动。通过考虑本文公开的本发明的说明书和实践,其他实施例对于本领域技术人员来说是显而易见的。本发明的真正范围和精神仅由所附的权利要求指示。附图所示的步骤序列仅用于说明目的,而不旨在限定任何特定的步骤序列。因此,本领域技术人员可以理解,这些步骤在实施相同方法的同时可以以不同的顺序执行,
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,尽管采用了特定的术语,但它们仅在通用和描述性的意义上使用,而不是出于限制的目的。
Claims (20)
1.一种对位流进行解码以输出视频流的一个或多个图像的方法,所述方法包括:
接收与一视频序列相关联的位流;以及
使用所述位流的编码信息对所述视频序列进行解码,
其中,所述解码包括:
基于在所述位流中用信号通知的第一标志,确定是否允许在所述视频序列中改变图像分辨率;以及
基于在所述位流中用信号通知的第二标志,确定是否在序列参数集(SPS)中用信号通知虚拟边界的信息;
其中,当所述第一标志具有指示允许在所述视频序列中改变所述图像分辨率的值时,所述第二标志具有指示在所述SPS中不用信号通知所述虚拟边界的信息的值。
2.根据权利要求1所述的方法,其中,当所述第一标志的值等于1时,所述第二标志的值等于0。
3.根据权利要求1所述的方法,其中,在所述SPS中用信号通知所述第一标志和所述第二标志。
4.根据权利要求3所述的方法,其特征在于,所述解码包括:
基于所述第二标志确定是否在所述SPS中用信号通知所述虚拟边界的信息。
5.根据权利要求1所述的方法,其特征在于,所述解码包括:
根据所述位流,确定所述视频序列中的第一图像的分辨率是否不同于与所述第一图像相关联的参考图像的分辨率;以及
响应于所述第一图像的分辨率不同于与所述第一图像相关联的所述参考图像的分辨率,确定对所述第一图像禁用环绕运动补偿。
6.根据权利要求1所述的方法,其特征在于,所述解码包括:
基于在所述位流中用信号通知的第一参数,确定所述视频序列的每个图像的最大宽度或最大高度;以及
基于在所述位流中用信号通知的第二参数,确定所述视频序列的虚拟边界的位置;
其中,所述第二参数的值受由所述第一参数的值确定的范围的限制。
7.根据权利要求6所述的方法,其中,所述范围由大于或等于所述第一参数的值除以8的商的最小整数确定。
8.根据权利要求6所述的方法,其中,所述第一参数的值以亮度样本为单位。
9.根据权利要求6所述的方法,其中,在所述SPS中用信号通知所述第一参数和所述第二参数。
10.一种将视频序列编码成位流的方法,所述方法包括:
接收一视频序列;
对所述视频序列的一个或多个图像进行编码;以及
生成位流,
其中,所述编码包括:
对一第一标志进行编码,所述第一标志指示是否允许在所述视频序列中改变图像分辨率;
基于所述第一标志的值对一第二标志进行编码,所述第二标志指示在序列参数集(SPS)中是否用信号通知虚拟边界的信息;
其中,当所述第一标志的值指示允许在所述视频序列中改变所述图像分辨率时,所述被编码的第二标志具有指示在所述SPS中不用信号通知所述虚拟边界的信息的值。
11.根据权利要求10所述的方法,其中,当所述第一标志的值等于1时,所述第二标志的值等于0。
12.根据权利要求10所述的方法,其特征在于,所述编码包括:
将所述第一标志和第二标志编码到所述SPS中。
13.根据权利要求12所述的方法,其特征在于,所述被编码的第二标志具有指示在所述位流中用信号通知所述虚拟边界的信息的值,并且所述编码包括:
将所述虚拟边界的信息编码到所述SPS中。
14.根据权利要求10所述的方法,其特征在于,所述编码包括:
确定所述视频序列中的第一图像的分辨率是否不同于与所述第一图像相关联的参考图像的分辨率;以及
响应于所述第一图像的分辨率不同于与所述第一图像相关联的所述参考图像的分辨率,对所述第一图像禁用环绕运动补偿。
15.根据权利要求10所述的方法,其特征在于,所述编码包括:
对指示所述视频序列的每个图像的最大宽度或最大高度的第一参数进行编码;以及
对指示所述视频序列的虚拟边界的位置的第二参数进行编码,
其中,所述第二参数的值受由所述第一参数的值确定的范围的限制。
16.根据权利要求15所述的方法,其特征在于,所述编码包括:
所述范围由大于或等于所述第一参数的值除以8的商的最小整数确定。
17.根据权利要求15所述的方法,其中,所述第一参数的值以亮度样本为单位。
18.根据权利要求15所述的方法,其特征在于,所述编码包括:
将所述第一参数和第二参数编码至SPS中。
19.一种存储与视频序列相关联的位流的非暂时性计算机可读存储介质,其中,所述位流包括:
第一标志,所述第一标志指示是否允许在所述视频序列中改变图像分辨率;
第二标志,所述第二标志指示是否在序列参数集(SPS)中用信号通知的虚拟边界的信息;
其中,当所述第一标志的值指示允许在所述视频序列中改变所述图像分辨率时,所述第二标志具有指示在所述SPS中不用信号通知所述虚拟边界的信息的值。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述位流包括:
第一参数,所述第一参数指示所述视频序列的每个图像的最大宽度或最大高度;以及
第二参数,所述第二参数指示所述视频序列的虚拟边界的位置;
其中,所述第二参数的值受由所述第一参数的值确定的范围的限制。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962954828P | 2019-12-30 | 2019-12-30 | |
US62/954,828 | 2019-12-30 | ||
PCT/US2020/066569 WO2021138143A1 (en) | 2019-12-30 | 2020-12-22 | Methods for signaling virtual boundaries and wrap-around motion compensation |
CN202080086150.2A CN114788264B (zh) | 2019-12-30 | 2020-12-22 | 用于发出虚拟边界和环绕运动补偿的信号的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080086150.2A Division CN114788264B (zh) | 2019-12-30 | 2020-12-22 | 用于发出虚拟边界和环绕运动补偿的信号的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014601A true CN117014601A (zh) | 2023-11-07 |
Family
ID=76546783
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310791838.6A Pending CN117014601A (zh) | 2019-12-30 | 2020-12-22 | 用于发出虚拟边界和环绕运动补偿的信号的方法 |
CN202080086150.2A Active CN114788264B (zh) | 2019-12-30 | 2020-12-22 | 用于发出虚拟边界和环绕运动补偿的信号的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080086150.2A Active CN114788264B (zh) | 2019-12-30 | 2020-12-22 | 用于发出虚拟边界和环绕运动补偿的信号的方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11671613B2 (zh) |
EP (1) | EP4085610A4 (zh) |
JP (1) | JP2023508895A (zh) |
KR (1) | KR20220123018A (zh) |
CN (2) | CN117014601A (zh) |
WO (1) | WO2021138143A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12041272B2 (en) * | 2019-06-19 | 2024-07-16 | Electronics And Telecommunications Research Institute | Virtual boundary signaling method and apparatus for video encoding/decoding |
CN115104317A (zh) * | 2019-12-12 | 2022-09-23 | Lg电子株式会社 | 图像编码装置和用于控制环路滤波的方法 |
WO2021133236A1 (en) * | 2019-12-24 | 2021-07-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual boundary processing for adaptive loop filtering |
US11418804B2 (en) * | 2019-12-31 | 2022-08-16 | Tencent America LLC | Method for wrap around motion compensation with reference picture resampling |
WO2021194308A1 (ko) * | 2020-03-26 | 2021-09-30 | 엘지전자 주식회사 | 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
US20230179803A1 (en) * | 2020-04-02 | 2023-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual boundary signaling |
WO2023249301A1 (ko) * | 2022-06-24 | 2023-12-28 | 엘지전자 주식회사 | 가상 경계를 픽처 경계로 처리하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9509999B2 (en) * | 2013-06-11 | 2016-11-29 | Qualcomm Incorporated | Inter-layer prediction types in multi-layer video coding |
US10075712B2 (en) * | 2014-11-20 | 2018-09-11 | Hfi Innovation Inc. | Method of motion vector and block vector resolution control |
US10368067B2 (en) | 2016-06-15 | 2019-07-30 | Mediatek Inc. | Method and apparatus for selective filtering of cubic-face frames |
KR20190035678A (ko) * | 2016-07-08 | 2019-04-03 | 브이아이디 스케일, 인크. | 지오메트리 투영을 이용한 360도 비디오 코딩 |
KR20200064989A (ko) * | 2017-09-20 | 2020-06-08 | 브이아이디 스케일, 인크. | 360도 비디오 코딩에서의 면 불연속 처리 |
WO2019162230A1 (en) * | 2018-02-20 | 2019-08-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Picture/video coding supporting varying resolution and/or efficiently handling region-wise packing |
CN109600611B (zh) * | 2018-11-09 | 2021-07-13 | 北京达佳互联信息技术有限公司 | 环路滤波方法、环路滤波装置、电子设备和可读介质 |
EP4060996B1 (en) * | 2019-12-12 | 2024-05-15 | LG Electronics Inc. | Filtering-based image coding methods |
-
2020
- 2020-12-22 JP JP2022537463A patent/JP2023508895A/ja active Pending
- 2020-12-22 EP EP20910544.4A patent/EP4085610A4/en active Pending
- 2020-12-22 WO PCT/US2020/066569 patent/WO2021138143A1/en unknown
- 2020-12-22 CN CN202310791838.6A patent/CN117014601A/zh active Pending
- 2020-12-22 CN CN202080086150.2A patent/CN114788264B/zh active Active
- 2020-12-22 KR KR1020227025251A patent/KR20220123018A/ko unknown
- 2020-12-22 US US17/130,791 patent/US11671613B2/en active Active
-
2023
- 2023-04-27 US US18/308,484 patent/US20230300360A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021138143A1 (en) | 2021-07-08 |
JP2023508895A (ja) | 2023-03-06 |
CN114788264A (zh) | 2022-07-22 |
EP4085610A1 (en) | 2022-11-09 |
KR20220123018A (ko) | 2022-09-05 |
US20230300360A1 (en) | 2023-09-21 |
US20210203972A1 (en) | 2021-07-01 |
EP4085610A4 (en) | 2023-04-19 |
CN114788264B (zh) | 2023-07-25 |
US11671613B2 (en) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114788264B (zh) | 用于发出虚拟边界和环绕运动补偿的信号的方法 | |
CN116506635B (zh) | 用于对图像执行逐步解码刷新处理的方法和系统 | |
US11956463B2 (en) | Methods for performing wrap-around motion compensation | |
US11785237B2 (en) | Methods for signaling video coding data | |
CN114902670B (zh) | 用信号通知子图像划分信息的方法和装置 | |
JP2024522853A (ja) | 複合インター及びイントラ予測を行うための方法及びシステム | |
KR20220062655A (ko) | 비디오 데이터의 무손실 코딩 | |
WO2021173475A1 (en) | Methods for combining decoder side motion vector refinement with wrap-around motion compensation | |
CN115152236A (zh) | 处理色度信号的方法 | |
CN115398897B (zh) | 用于导出时间运动信息的方法和装置 | |
CN116918333A (zh) | 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 | |
CN116418983B (zh) | 用于在调色板模式下对视频数据进行编码的方法和装置 | |
CN118044184A (zh) | 用于执行组合帧间预测和帧内预测的方法和系统 | |
CN116601960A (zh) | 使用自适应环路滤波器的方法及其系统 | |
CN115552900A (zh) | 用信号通知最大变换大小和残差编码的方法 | |
KR20220063272A (ko) | 비디오 코딩을 위한 움직임 보상 방법 |
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 |