CN118101964A - 视频数据处理方法及装置、显示装置和存储介质 - Google Patents
视频数据处理方法及装置、显示装置和存储介质 Download PDFInfo
- Publication number
- CN118101964A CN118101964A CN202211493517.XA CN202211493517A CN118101964A CN 118101964 A CN118101964 A CN 118101964A CN 202211493517 A CN202211493517 A CN 202211493517A CN 118101964 A CN118101964 A CN 118101964A
- Authority
- CN
- China
- Prior art keywords
- video
- region
- display
- current video
- motion vector
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 46
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 129
- 239000013598 vector Substances 0.000 claims abstract description 121
- 238000012545 processing Methods 0.000 claims abstract description 72
- 238000009795 derivation Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 42
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 18
- 230000002123 temporal effect Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000007704 transition Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 44
- 238000004891 communication Methods 0.000 description 23
- 238000013139 quantization Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 18
- 239000000872 buffer Substances 0.000 description 17
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 15
- 238000000638 solvent extraction Methods 0.000 description 14
- 238000005192 partition Methods 0.000 description 13
- 238000001914 filtration Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 9
- 239000000047 product Substances 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/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
-
- 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/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种视频数据处理方法及视频数据处理装置、显示装置和存储介质。该方法包括:对于视频的当前视频块,确定使用第一帧间预测模式进行编解码,基于确定,执行当前视频块与视频的比特流之间的转换,在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。通过上述方法,可以根据实际需要显示的区域来对比特流进行部分解码,从而减少未显示部分的解码资源消耗,提高编解码效率。
Description
技术领域
本公开的实施例涉及一种视频数据处理方法及视频数据处理装置、显示装置和计算机可读存储介质。
背景技术
数字视频功能可以结合在各种各样的设备中,包括数字电视、数字直播***、无线广播***、便携式电脑或台式电脑、平板电脑、电子阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、智能手机、视频电话会议设备和视频流设备等。数字视频设备可以实施视频编解码技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、高级视频编解码(AVC)、高效视频编解码(HEVC)、ITU-T H.265/高效视频编解码定义的标准以及此类标准的扩展中所描述的那些视频编解码技术。通过实施以上视频编解码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。
发明内容
本公开至少一个实施例提供一种视频数据处理方法。视频数据处理方法包括:对于视频的当前视频块,确定使用第一帧间预测模式进行编解码,基于所述确定,执行所述当前视频块与所述视频的比特流之间的转换。在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
例如,在本公开至少一个实施例提供的方法中,对于所述视频的当前视频帧,从所述第一显示模式定义的视频展开起始位置沿着展开方向的第一显示区域作为所述基础区域。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述第一显示区域内,所述运动矢量在第一运动矢量预测范围内。
例如,在本公开至少一个实施例提供的方法中,所述第一运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界来确定。
例如,在本公开至少一个实施例提供的方法中,所述当前视频帧包括所述第一显示区域和沿着所述展开方向依次相邻布置的至少一个显示子区域,并且所述展开方向为从左到右,
响应于所述当前视频块位于所述当前视频帧中的所述第一显示区域右侧的第一显示子区域内,所述运动矢量在第二运动矢量预测范围内。
例如,在本公开至少一个实施例提供的方法中,所述第二运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界、所述第一显示子区域的宽度来确定。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述第一显示区域右侧的第k个第一显示子区域内并且k=1,所述第二运动矢量预测范围等于所述第一运动矢量预测范围。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述第一显示区域右侧的第k个第一显示子区域内并且k为大于1的整数,所述第一运动矢量预测范围的第一右侧边界与所述第二运动矢量预测范围的第二右侧边界不同。
例如,在本公开至少一个实施例提供的方法中,所述当前视频帧包括所述第一显示区域和沿着所述展开方向依次相邻布置的至少一个显示子区域,并且所述展开方向为从上到下,
响应于所述当前视频块位于所述第一显示区域下方的第二显示子区域内,所述运动矢量在第三运动矢量预测范围内。
例如,在本公开至少一个实施例提供的方法中,所述第三运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界、所述第二显示子区域的高度来确定。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述第一显示区域下方的第m个第二显示子区域内并且m=1,所述第三运动矢量预测范围等于所述第一运动矢量预测范围。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述第一显示区域下方的第m个第二显示子区域内并且m为大于1的整数,所述第一运动矢量预测范围的第一下方边界与所述第三运动矢量预测范围的第三下方边界不同。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述基础区域外,所述当前视频块的运动矢量预测候选列表中的时域候选运动矢量预测值基于空域候选运动矢量预测值计算。
例如,在本公开至少一个实施例提供的方法中,响应于所述当前视频块位于所述基础区域内,所述当前视频块使用的所有参考像素在所述基础区域内。
例如,在本公开至少一个实施例提供的方法中,所述第一帧间预测模式包括Merge预测模式、高级运动矢量预测AMVP模式、带运动矢量差的Merge模式、双向加权预测模式或者仿射预测模式。
本公开至少一个实施例还提供了一种视频数据处理方法。视频数据处理方法,包括:接收视频的比特流;确定所述视频的当前视频块使用第一帧间预测模式进行编解码;基于所述确定,对所述比特流进行解码。在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
例如,在本公开至少一个实施例提供的方法中,对所述比特流进行解码,包括:确定所述视频的当前视频帧的待解码区域,所述待解码区域至少包括所述基础区域对应的第一显示区域。
例如,在本公开至少一个实施例提供的方法中,确定所述待解码区域,包括:基于所述当前视频帧待显示的像素数量和编码单元数量、所述第一显示区域的编码单元数量、前一视频帧的已显示的像素数量和所述前一视频帧的已解码区域的编码单元数量中的至少一个确定所述待解码区域。
例如,在本公开至少一个实施例提供的方法中,确定所述待解码区域,包括:响应于所述当前视频帧待显示的编码单元数量大于前一视频帧的已解码区域的编码单元数量,或者响应于所述当前视频帧待显示的编码单元数量等于前一视频帧的已解码区域的编码单元数量,并且所述当前视频帧待显示的像素数量大于所述前一视频帧的已显示的像素数量,确定所述待解码区域包括所述前一视频帧的已解码区域和一个新的显示子区域。
例如,在本公开至少一个实施例提供的方法中,确定所述待解码区域,包括:响应于所述当前视频帧待显示的编码单元数量大于所述第一显示区域的编码单元数量,并且所述当前视频帧待显示的编码单元数量小于前一视频帧的已解码区域的编码单元数量,或者响应于当前视频帧待显示的编码单元数量大于所述第一显示区域的编码单元数量,所述当前视频帧待显示的编码单元数量等于前一视频帧的已解码区域的编码单元数量,并且所述当前视频帧待显示的像素数量不大于所述前一视频帧的已显示的像素数量,确定所述当前视频帧的待解码区域包括所述当前视频帧待显示的区域。
本公开至少一个实施例还提供了一种视频数据处理装置,包括确定模块和执行模块。确定模块被配置为对于所述视频的当前视频块,确定使用第一帧间预测模式进行编解码。执行模块被配置为基于所述确定,执行所述当前视频块与所述视频的比特流之间的转换。在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
本公开至少一个实施例还提供了一种显示装置,包括视频数据处理装置和滑卷屏。所述视频数据处理装置被配置为根据权利要求1-20中任一项所述的方法,对接收到的比特流进行解码,并将解码后的像素值发送至所述滑卷屏以供显示。
例如,在本公开至少一个实施例提供的显示装置中,响应于所述滑卷屏在工作中包括显示区域和非显示区域,所述视频数据处理装置基于当前时刻和前一帧时刻的所述显示区域的尺寸对所述比特流进行解码。
例如,本公开至少一个实施例提供的显示装置还包括卷曲状态判断装置。所述卷曲状态判断装置配置为检测所述滑卷屏的显示区域的尺寸,并将所述显示区域的尺寸发送至所述视频数据处理装置,以使得所述视频数据处理装置基于当前时刻和前一帧时刻的所述显示区域的尺寸对所述比特流进行解码。
例如,本公开至少一个实施例还提供一种视频数据处理装置,包括:处理器和包括一个或多个计算机程序模块的存储器。所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行上述任一实施例提供的视频数据处理方法的指令。
例如,本公开至少一个实施例还提供一种计算机可读存储介质,其上存储有计算机指令。该指令被处理器执行时实现上述任一实施例提供的视频数据处理方法的步骤。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一个实施例提供的一种滑卷屏的结构示意图;
图2为本公开至少一个实施例提供的一种示例视频编解码***的框图;
图3为本公开至少一个实施例提供的一种示例视频编码器的框图;
图4为本公开至少一个实施例提供的一种示例视频解码器的框图;
图5为本公开至少一个实施例提供的全帧内配置的编码结构示意图;
图6为本公开至少一个实施例提供的低延迟配置的编码结构示意图;
图7A为本公开至少一个实施例提供的一种帧间预测编码的示意图;
图7B为本公开至少一个实施例提供的一种帧间预测技术的示意流程图;
图8A为本公开至少一个实施例提供的一种仿射运动补偿的示意图;
图8B为本公开至少一个实施例提供的另一种仿射运动补偿的示意图;
图9为本公开至少一个实施例提供的一种视频数据处理方法的示意图;
图10为本公开至少一个实施例提供的一种滑卷屏的视频编解码的示意图;
图11为本公开至少一个实施例提供的一种当前视频帧的划分方式的示意图;
图12A为本公开至少一个实施例提供的一种滑卷屏的转轴方向的示意图;
图12B为本公开至少一个实施例提供的另一种滑卷屏的转轴方向的示意图;
图13为本公开至少一个实施例提供的当前视频块位于第一显示区域内的编码示意图;
图14为本公开至少一个实施例提供的当前视频块位于第一显示区域的边界的编码示意图;
图15为本公开至少一个实施例提供的另一种视频数据处理方法的示意图;
图16为根据本公开至少一个实施例的一种在低延迟配置下视频编解码***的示意框图;
图17为根据本公开至少一个实施例的一种在低延迟配置下视频数据处理方法的示意流程图;
图18为根据本公开至少一个实施例的一种视频数据处理装置的示意流程图;
图19为根据本公开至少一个实施例的另一种视频数据处理装置的示意框图;
图20为本公开至少一个实施例提供的又一种视频数据处理装置的示意框图;以及
图21为本公开至少一个实施例提供的一种非瞬时可读存储介质的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中使用了流程图来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
由于对高分辨率视频的需求的增加,视频编解码方法和技术在现代技术中普遍存在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且不断改进以提供更高的编码效率。视频编解码器将未压缩视频转换成压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的简易性、随机存取、端到端延迟(延迟时间)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如,高效视频编解码(HEVC)标准(也称为H.265)、待最终确定的通用视频编解码(VVC)标准(也称为H.266)或其他当前和/或未来的视频编解码标准。
可以理解的是,本公开所涉及的技术的实施例可以应用于现有视频编解码标准(例如,AVC、HEVC和VVC)和未来的标准以改进压缩性能。在本文中对于编解码操作的描述可以参照现有的视频编解码标准,可以理解的是,本公开中提供的方法并不限于所描述的视频编解码标准。
目前,随着折叠屏手机、折叠屏平板等终端产品的出现,人们越来越关注对柔性显示屏的研究,例如柔性滑卷屏等。图1为本公开至少一个实施例提供的一种滑卷屏的结构示意图。如图1所示,滑卷屏通常包括全展开状态和部分展开状态。滑卷屏的未卷部分视为显示区域,卷起部分视为未显示区域。需要说明的是,在本公开的各个实施例中,滑卷屏可以是任意类型的显示区域可变的显示屏,包括且不限于图1所示的滑卷屏结构。通常,在滑卷屏的实际使用过程,例如在卷收过程中,滑卷屏的被卷部分的视频画面无需显示,但仍然会解码该部分画面,造成解码资源的浪费。
至少为了解决上述技术问题,本公开至少一个实施例提供了一种视频数据处理方法,该方法包括:对于视频的当前视频块,确定使用第一帧间预测模式进行编解码;基于确定,执行当前视频块与视频的比特流之间的转换。在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。
相应地,本公开至少一个实施例还提供了一种对应于上述视频数据处理方法的视频数据处理装置、显示装置和计算机可读存储介质。
通过本公开至少一个实施例提供的视频数据处理方法,通过基于视频中的与第一显示模式对应的基础区域来推导当前视频块的运动矢量,使得可以根据实际显示的显示区域,对视频的比特流进行部分解码,从而减少未显示部分的解码资源消耗,有效提升视频编解码的效率,进而提升用户的产品使用体验。
需要说明的是,在本公开的实施例中,用于描述相邻块或者参考像素相对于当前视频块的位置的词语,例如“上方”、“下方”、“左侧”、“右侧”等,其含义与视频编解码标准(例如,AVC、HEVC和VVC)中所定义的保持一致。例如,在一些示例中,“左侧”和“右侧”分别表示在水平方向上的两侧,上方”和“下方”分别表示在垂直方向上的两侧。
下面通过多个示例或实施例及其示例对根据本公开提供的布局设计方法进行非限制性的说明,如下面所描述的,在不相互抵触的情况下这些具体示例或实施例中不同特征可以相互组合,从而得到新的示例或实施例,这些新的示例或实施例也都属于本公开保护的范围。
本公开的至少一个实施例提供一种编解码***。可以理解的是,在本公开中,对于编码端和解码端可以采用相同结构的编解码器来实现。
图2是示出可执行根据本公开一些实施例的示例视频编解码***1000的框图。本公开的技术一般地涉及对视频数据进行编解码(编码和/或解码)。一般来说,视频数据包括用于处理视频的任何数据,因此,视频数据可包括未编码的原始视频、编码视频、解码(如重构)视频和诸如语法数据的视频元数据。视频中可以包括一个或多个图片,或者称为图片序列。
如图2所示,在此示例中,***1000包括源设备102,用于提供待由目的设备116解码以用于显示的经编码的视频数据,经编码的视频数据用于形成比特流(bitstream),以传输至解码端,其中,比特流也可以称为位流。具体而言,源设备102经由计算机可读介质110向目的设备116提供经编码的视频数据。源设备102和目的设备116可以实施为多种设备,如台式电脑、笔记本(即便携式)电脑、平板电脑、移动设备、机顶盒、智能手机、手持电话、电视、相机、显示设备、数字媒体播放器,视频游戏机、视频流设备等。在一些情况下,源设备102和目的设备116可被配备用于无线通信,因此也可被称为无线通信设备。
在图2的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开一些实施例,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置成用于实施根据本公开一些实施例的编码方法和解码方法。因此,源设备102表示视频编码设备的示例,而目的设备116表示视频解码设备的示例。在其他示例中,源设备102和目的设备116可包括其他组件或配置。例如,源设备102可以从外部像机等外部视频源接收视频数据。同样,目的设备116可以与外部显示设备连接,而无需内置集成显示设备118。
图2所示的***1000仅为一个示例。一般来说,任何数字视频编码和/或解码设备都可执行根据本公开一些实施例的编码方法和解码方法。源设备102和目的设备116仅为此类编解码设备的示例,其中源设备102生成比特流以传输到目的设备116。本公开将“编解码”设备称为执行数据编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示编解码设备的示例。
在一些示例中,设备102、116实质上是以对称的方式操作,这样,设备102、116均包括视频编码及解码组件,即设备102、116均可以实现视频编码和解码过程。因此,***1000可支持视频设备102和116之间的单向或双向视频传输,如可用于视频流、视频回放、视频广播或视频电话通信。
一般来说,视频源104表示视频数据源(即未经编码的原始视频数据)且将视频数据的连续系列图片(也称为“帧”)提供至视频编码器200,视频编码器200对图片的数据进行编码。源设备102的视频源104可包括视频捕获设备,如视频摄像机、包含先前捕获的原始视频的视频档案库和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一可选方案,视频源104可产生基于计算机图形的数据作为源视频或实况视频、存档视频和计算机生成视频的组合。在各种情形下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码处理。视频编码器200可将图片从接收时的次序(有时称为“显示次序”)重新排列成用于编码的编码次序。视频编码器200可产生包括经编码的视频数据的比特流。然后,源设备102可经输出接口108将生成的比特流输出至计算机可读介质110上,用于如目的设备116的输入接口122等的接收和/或检索。
源设备102的存储器106和目的设备116的存储器120表示通用存储器。在一些示例中,存储器106和存储器120可存储原始视频数据,例如来自视频源104的原始视频数据和来自视频解码器300的解码视频数据。另外或可选地,存储器106和存储器120可分别存储可由视频编码器200和视频解码器300等分别执行的软件指令。尽管在此示例中与视频编码器200和视频解码器300分开展示,但应理解,视频编码器200和视频解码器300还可包括内部存储器,以实现功能上相似或等效的目的。此外,存储器106和存储器120可存储从视频编码器200输出且输入到视频解码器300等的经编码的视频数据。在一些示例中,存储器106和存储器120的一些部分可被分配作为一个或多个视频缓冲器,如为了存储解码的原始视频数据和/或经编码的原始视频数据。
计算机可读介质110可表示能够将经编码的视频数据从源设备102传输到目的设备116的任何类型的介质或设备。在一些示例中,计算机可读介质110表示通信介质,以使源设备102能够经由射频网络或计算机网络等将比特流直接实时地传输到目的设备116。根据无线通信协议等通信标准,输出接口108可调制包括编码的视频数据在内的传输信号,且输入接口122可以调制接收到的传输信号。该通信介质可包括无线或有线通信介质,或两者都包括,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,如局域网、广域网或因特网等全球网络。通信介质可包括路由器、交换机、基站或可用于促进从源设备102到目的设备116的通信的任何其他设备。
在一些示例中,源设备102可将经编码的数据从输出接口108输出到存储设备112。类似地,目的设备116可经由输入接口122从存储设备112访问经编码的数据。存储设备112可包括各种分布式数据存储介质或本地访问的数据存储介质,如硬盘驱动器、蓝光光盘、数字视频盘(DVD)、只读光盘驱动器(CD-ROM)、闪存、易失性或非易失性存储器或用于存储编码视频数据的任何其他合适的数字存储介质。
在一些示例中,源设备102可将经编码的数据输出至文件服务器114或可存储由源设备102生成的编码视频的另一中间存储设备。目的设备116可经由在线或下载方式从文件服务器114访问所存储的视频数据。文件服务器114可以为能够存储经编码的数据并将经编码的数据传输至目的设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(如用于网站)、文件传输协议(FTP)服务器、内容分发网络设备或网络附加存储(NAS)设备。目的设备116可以通过包括因特网连接在内的任何标准数据连接从文件服务器114访问经编码的数据。这可以包括适用于访问存储在文件服务器114上的编码视频数据的Wi-Fi连接等无线信道、数字用户线路(DSL)和电缆调制解调器等有线连接或无线信道和有线连接的组合。文件服务器114和输入接口122可被配置成根据流式传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发射器/接收器、调制解调器、以太网卡等有线连网组件、根据各种IEEE 802.11标准中任一项进行操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可被配置成根据***移动通信技术(4G)、4G长期演进(4G-LTE)、先进LTE(LTEAdvanced)、第五代移动通信技术(5G)或其他蜂窝通信标准来传送经编码的数据等数据。在输出接口108包括无线发射器的一些示例中,输出接口108和输入接口122可被配置成根据诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、蓝牙标准等其他无线标准来传送经编码的数据等数据。在一些示例中,源设备102和/或目的设备116可以包括相应的片上***(SoC)设备。例如,源设备102可包括SoC设备以执行视频编码器200和/或输出接口108的功能,目的设备116可包括SoC设备以执行诸如视频解码器300和/或输入接口122的功能。
本公开的技术可应用于支持多种多媒体应用的视频编码,如无线电视广播、有线电视传输、***传输、基于HTTP的动态自适应流等因特网流视频传输、编码到数据存储介质上的数字视频、存储于数据存储介质的数字视频的解码或其他应用。
目的设备116的输入接口122从计算机可读介质110(如存储设备112和文件服务器114等)接收比特流。比特流可以包括由视频编码器200限定的信令信息,这些信令信息也由视频解码器300使用,如具有描述视频块或其他编码单元(如条带、图片、图片组和序列等)的性质和/或处理过程的值的语法元素。
显示设备118向用户显示解码视频数据的解码图片。显示设备118可以是各种类型的显示设备,诸如基于阴极射线管(CRT)的设备、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其他类型的显示设备等。
尽管图2中未示出,但在一些示例中,视频编码器200和视频解码器300可各自与音频编码器和/或音频解码器集成,且可包括适当的复用-解复用(MUX-DEMUX)单元或其他硬件和/或软件,以处理公共数据流中既包括音频也包括视频的多路复用流。如果适用,则MUX-DEMUX单元可以符合ITU H.223多路复用器协议或诸如用户数据报协议(UDP)等其他协议。
视频编码器200和视频解码器300都可被实现为任何合适的编解码器电路,诸如微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑元件、软件、硬件、固件或其任何组合。当技术部分地以软件实现时,设备可将用于软件的指令存储在合适的非暂时性计算机可读介质中,且使用一个或多个以上处理器在硬件中执行指令以执行本公开的技术。视频编码器200和视频解码器300都可包含在一个或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应设备中的组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以是集成电路、微处理器和/或蜂窝式电话等无线通信设备。
视频编码器200和视频解码器300可以根据视频编解码标准来进行操作,例如,根据ITU-T H.265(也称为高效视频编解码(HEVC))等视频编解码标准来操作,或根据多视图和/或可伸缩视频编解码扩展等HEVC的扩展来操作。可选地,视频编码器200和视频解码器300可根据其他专有或工业标准(如目前正在开发的联合探索测试模型(JEM)或通用视频编解码(VVC)标准)来操作。本公开所涉及的技术不限于任何特定的编解码标准。
一般来说,视频编码器200和视频解码器300可以对以YUV(如Y、Cb、Cr)格式表示的视频数据进行编解码。即,视频编码器200和视频解码器300可以对亮度和色度分量进行编解码,而非对图片样点的红绿蓝(RGB)数据进行编解码,其中色度分量可以包括红色色调和蓝色色调的色度分量。在一些示例中,视频编码器200在进行编码之前将接收的RGB格式化数据转换为YUV格式,且视频解码器300将YUV格式转换为RGB格式。可选地,前处理单元和后处理单元(未示出)可以执行这些转换。
一般来说,视频编码器200和视频解码器300可执行图片的基于块的编解码过程。术语“块”或者“视频块”通常是指包括待处理的(如编码的、解码的或其他在编码和/或解码过程中使用的)数据的结构。例如,块可以包括亮度和/或色度数据样点的二维矩阵。一般地,可以首先将图片划分成多个块以进行编解码处理,图片中正在进行编解码处理的块可以称为“当前块”或者“当前视频块”。
此外,本公开的实施例还可以涉及对图片进行编解码以包括对图片数据进行编码或解码的过程。类似地,本公开可涉及对图片的块进行编码以包括对块的数据进行编码或解码的过程,如预测和/或残差编码。通过编码处理得到的比特流通常包括一系列用于语法元素的值,语法元素表示编码决策(如编码模式)以及将图片分割成块的信息。因此,对图片或块进行编码通常可以理解为对形成图片或块的语法元素的值进行编码。
HEVC界定各种块,包含编码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频编码器(如视频编码器200)根据四叉树结构将编码树单元(CTU)分割成CU。即,视频编码器将CTU和CU分割为四个相等的非重叠方块,且四叉树的每一节点具有零个或四个子节点。没有子节点的节点可被称为“叶节点”,且此类叶节点的CU可包括一个或多个PU和/或一个或多个TU。视频编码器可以进一步分割PU和TU。例如在HEVC中,残差四叉树(RQT)表示对TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测的CU包括帧内模式指示等帧内预测信息。
在VVC中,带有嵌套的多类型树(使用二叉树和三叉树划分)的四叉树取代了多个分区单元类型的概念,即,它去除了CU、PU和TU概念的分离,除非对于最大变换长度而言尺寸过大的CU是需要的,并且支持CU分区形状的更大灵活性。在编码树结构中,CU可以具有正方形或矩形形状。首先,CTU由四叉树结构划分。然后,可以通过多类型树结构进一步划分四叉树叶节点。多类型树叶节点被称为编码单元CU,并且除非CU对于最大变换长度来说太大,否则该分割被用于预测和变换处理,而无需任何进一步的分割。这意味着,在大多数情况下,CU、PU和TU在具有嵌套多类型树编码块结构的四叉树中具有相同的块大小。
视频编码器200和视频解码器300可被配置成在按照HEVC使用四叉树分割,根据JEM进行四叉树二叉树(QTBT)分割或使用其他分割结构。应该了解的是,本公开的技术还可应用于被配置成使用四叉树分割或其他分割类型的视频编码器。视频编码器200对用于表示预测信息和/或残差信息及其他信息的CU的视频数据进行编码。预测信息指示如何预测CU以形成CU的预测块。残差信息通常表示编码前的CU的样点与预测块样点之间的逐样点差值。
视频编码器200可例如在图片标头、块标头、条带标头等中进一步产生用于视频解码器300的语法数据,例如基于块的语法数据、基于图片的语法数据和基于序列的语法数据,或者产生诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)的其他语法数据。视频解码器300可以同样解码此类语法数据以确定如何解码对应的视频数据。例如,语法数据可以包括各种语法元素、标志、参数等,用于表示视频的编解码信息。
以此方式,视频编码器200可以产生比特流,比特流包括经编码的视频数据,如描述将图片分割为块(如CU)的语法元素和块的预测信息和/或残差信息。最终,视频解码器300可接收比特流并解码经编码的视频数据。
一般来说,视频解码器300执行与视频编码器200所执行过程互逆的过程,以解码比特流中的经编码的视频数据。例如,视频解码器300可以以实质上类似于视频编码器200的方式来解码比特流的语法元素的值。语法元素可以根据分割信息来界定图片CTU,并根据QTBT结构等相应的分割结构对每个CTU进行分割,以界定CTU的CU。语法元素可进一步界定视频数据的块(如CU)的预测信息和残差信息。残差信息可由例如量化变换系数表示。视频解码器300可对块的量化变换系数进行逆量化和逆变换以再现块的残差块。视频解码器300使用在比特流中信令传输的预测模式(帧内或帧间预测)和相关预测信息(如用于帧间预测的运动信息)来形成块的预测块。视频解码器300可接着(在逐样点的基础上)组合预测块和残差块以再现原始块。此外,视频解码器300还可以执行附加处理,例如执行去方块过程以减少沿着块边界的视觉伪像。
图3是示出根据本公开一些实施例的示例视频编码器的框图,对应地,图4是示出根据本公开一些实施例的示例视频解码器的框图,例如,图3中示出的编码器可以实施为图2中的视频编码器200,图4中示出的解码器可以实施为图2中的视频解码器300。以下将结合图3和图4对根据本公开一些实施例的编解码器进行详细描述。
可以理解的是,提供图3和图4是为了解释的目的,不应将其视为对本公开中广泛例示和描述的技术的限制。为了解释,本公开在开发中的视频编解码标准(如HEVC视频编解码标准或H.266视频编解码标准)的上下文中描述视频编码器200和视频解码器300,但本公开的技术不限于这些视频编解码标准。
图3中的各单元(或称为模块)经示出以助理解由视频编码器200执行的操作。这些单元可实现为固定功能电路、可编程电路或两者的组合。固定功能电路是指提供特定功能并预先设置在可执行操作上的电路。可编程电路是指可经编程以执行多种任务并在可执行操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以软件或固件的指令所界定的方式操作的软件或固件。固定功能电路可执行软件指令(来接收参数或输出参数等),但固定功能电路执行的操作类型通常是固定的。在一些示例中,一个或多个单元可以为不同的电路块(固定功能电路块或可编程电路块),且在一些示例中,一个或多个单元可以为集成电路。
图3中示出的视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图2)可存储视频编码器200接收并执行的软件的目标代码,或视频编码器200内的其他存储器(图中未示出)以用于存储此类指令。
在图3的示例中,视频编码器200可以接收输入视频,例如,可以从诸如视频数据存储器中接收输入视频,或者,也可以直接地从视频采集设备接收输入视频。视频数据存储器可以存储待由视频编码器200组件进行编码处理的视频数据。视频编码器200可从诸如视频源104(如图2所示)等接收存储在视频数据存储器中的视频数据。解码缓存可以用作参考图片存储器来存储参考视频数据,以供视频编码器200预测后续的视频数据时使用。视频数据存储器和解码缓存可以由多种存储器设备形成,如包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)的动态随机存取存储器(DRAM)或其他类型的存储器设备。视频数据存储器和解码缓存可以由同一存储设备或不同的存储设备提供。在各种示例中,视频数据存储器可以如图3所示的与视频编码器200的其他组件位于同一芯片,也可与其他组件不位于同一芯片。
在本公开中,对视频数据存储器的参考不应被解释为限于视频编码器200内部的存储器(除非如此具体描述)或限于视频编码器200外部的存储器(除非如此具体描述)。更确切地说,对视频数据存储器的参考应理解为存储视频编码器200接收的以用于编码的视频数据(如待编码的当前块的视频数据)的参考存储器。此外,图2中的存储器106还可为视频编码器200中各单元的输出提供临时存储。
模式选择单元通常协调多个编码通道以测试编码参数的组合以及由这些组合得到的速率失真值。编码参数可包括CTU到CU的分割、CU的预测模式、CU残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元可最终选择速率失真值比其他被测试组合更好的编码参数组合。
视频编码器200可将从视频存储器检索的图片分割成一系列CTU并将一个或多个CTU封装至条带内。模式选择单元可以根据树结构(如上述的QTBT结构或HEVC的四叉树结构)分割图片的CTU。如上所述,视频编码器200可通过根据树结构分割CTU来形成一个或多个CU。这样的CU通常也可称为“块”或者“视频块”。
一般来说,模式选择单元还控制其组件(诸如运动估计单元、运动补偿单元和帧内预测单元)以产生当前块(如当前CU或HEVC中PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元可执行运动搜索以识别一个或多个参考图片(如解码缓存中存储的一个或多个解码图片)中的一个或多个紧密匹配的参考块。具体来说,运动估计单元可根据诸如绝对差值和(SAD)、差平方值和(SSD)、平均绝对差值(MAD)、平均平方差值(MSD)等来计算表示潜在参考块与当前块相似程度的值,运动估计单元通常可使用当前块与所考虑的参考块之间的逐样点差值来执行这些计算。运动估计单元可识别具有从这些计算产生的最低值的参考块,从而指示与当前块匹配最紧密的参考块。
运动估计单元可形成一个或多个运动矢量(MV),这些运动矢量界定参考图片中的参考块相对于当前图片中当前块位置的位置。运动估计单元可接着将运动矢量提供至运动补偿单元。例如,对于单向帧间预测,运动估计单元可提供单个运动矢量,而对于双向帧间预测,运动估计单元可提供两个运动矢量。运动补偿单元可接着使用运动矢量产生预测块。例如,运动补偿单元可使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,那么运动补偿单元可根据一个或多个内插滤波器对预测块进行插值。此外,对于双向帧间预测,运动补偿单元可检索由相应运动矢量识别的两个参考块的数据,并通过逐样点平均或加权平均等来组合检索的数据。
作为另一示例,对于帧内预测,帧内预测单元可从与当前块相邻的样点产生预测块。例如,对于方向模式,帧内预测单元通常可数学地组合相邻样点的值,且在当前块上沿界定的方向填充这些计算值,以产生预测块。作为另一示例,对于DC模式,帧内预测单元可计算与当前块相邻样点的平均值,且产生预测块以包括预测块每一样点的所得平均值。
对于帧内块复制模式编码、仿射模式编码和线性模型(LM)模式编码等其他视频编解码技术,举例来说,模式选择单元可经由与编解码技术相关联的相应单元产生正被编码的当前块的预测块。在一些示例中,如调色板模式编码,模式选择单元可不产生预测块,而是产生指示根据选定调色板重构块的方式的语法元素。在这类模式中,模式选择单元可将这些语法元素提供至熵编码单元以进行编码。
如上所述,残差单元接收当前块和对应的预测块。残差单元随后生成当前块的残差块。为产生残差块,残差单元计算预测块和当前块之间的逐样点差值。
变换单元(图3中示出的“变换&采样&量化”)将一个或多个变换应用于残差块以产生变换系数的块(例如称为“变换系数块”)。变换单元可将各种变换应用于残差块以形成变换系数块。例如,变换单元可将离散余弦变换(DCT)、方向变换、卡洛变换(KLT)或概念上的相似变换应用于残差块。在一些示例中,变换单元可对残差块执行多个变换,例如,初级变换和次级变换,诸如旋转变换。在一些示例中,变换单元可以不将变换应用于残差块。
接着,变换单元可以量化变换系数块中的变换系数,以产生量化变换系数块。变换单元可根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(如经由模式选择单元)可通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可能会导致信息丢失,因此量化后的变换系数其精度可能比原始变换系数的精度低。
此外,编码器200还可以包括编码控制单元,以用于对编码过程中的操作产生控制信息。接着,逆量化和逆变换单元(图3中示出的“逆量化&逆变换”)可分别将逆量化和逆变换应用于量化变换系数块,以从变换系数块获得重构残差块。重构单元可基于重构残差块和由模式选择单元产生的预测块生成对应于当前块的重构块(尽管可能有某种程度的失真)。例如,重构单元可将重构残差块的样点添加至来自模式选择单元产生的预测块的相应样点,以生成重构块。
重构块可以经过滤波处理,例如图3中示出的环路滤波单元,以执行一个或多个滤波操作。例如,滤波处理可以包括去方块操作以减少沿CU边缘的块效应伪像。在一些示例中,可以跳过滤波处理的操作。
接着,经过诸如环路滤波之后,视频编码器200可以将重构块存储于解码缓存。在跳过滤波处理的示例中,重构单元可将重构块存储于解码缓存。在需要滤波处理的示例中,可以将经过滤波的重构块存储于解码缓存。运动估计单元和运动补偿单元可从解码缓存中检索由重构(且可能为滤波的)块形成的参考图片,以对随后编码的图片的块进行帧间预测。此外,帧内预测单元可使用当前图片的解码缓存中的重构块来对当前图片中的其他块进行帧内预测。
以上描述的操作是关于块的。此描述应被理解为用于亮度编码块和/或色度编码块的操作。如上所述,在一些示例中,亮度编码块和色度编码块是CU的亮度分量和色度分量。在一些示例中,亮度编码块和色度编码块是PU的亮度分量和色度分量。
一般来说,熵编码单元可对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元可对来自变换单元的量化变换系数块进行熵编码。例如,熵编码单元可以对来自模式选择单元的预测语法元素(如帧间预测的运动信息或帧内预测的帧内模式信息)进行熵编码,以生成熵编码数据。例如,熵编码单元可以对数据执行上下文自适应可变长度编码(CAVLC)操作、上下文自适应二进制算术编码(CABAC)操作、可变长度编码操作、基于语法的上下文自适应二进制算术编码(SBAC)操作、概率区间分割熵(PIPE)编码操作、指数哥伦布编码操作或其他类型的熵编码操作。在一些示例中,熵编码单元可以在语法元素未被熵编码的旁路模式中操作。视频编码器200可输出包括重构条带或图片的块所需的熵编码语法元素的比特流。
图4是示出根据本公开一些实施例的示例视频解码器的框图,例如,图4中示出的解码器可以是图2中的视频解码器300。可以理解的是,提供图4是为了解释,而非是对在本公开中广泛示例和描述的技术的限制。为了解释的目的,根据HEVC技术来描述视频解码器300。然而,本公开技术可由配置成其他视频编解码标准的视频解码设备执行。
可以理解的是,在实际应用中视频解码器300的基本结构可以与图3中示出的视频编码器类似,从而使得编码器200、解码器300均包括视频编码及解码组件,即编码器200、解码器300均可以实现视频编码和解码过程。在此种情形下,编码器200和解码器300可以统称为编解码器。因此,由编码器200和解码器300组成的***可以支持设备之间的单向或双向视频传输,如可用于视频流、视频回放、视频广播或视频电话通信。可以理解的是,视频解码器300可以包括相比于图4中示出的组件更多、更少或不同的功能组件。为解释的目的,图4中示出了与根据本公开一些实施例的解码转换过程相关的组件。
在图4的示例中,视频解码器300包括存储器、熵解码单元、预测处理单元、逆量化和逆变换单元(图4中示出的“逆量化&逆变换单元”)、重构单元、滤波器单元、解码缓存以及比特深度逆变换单元。其中,预测处理单元可以包括运动补偿单元和帧内预测单元。预测处理单元例如还可以包括加法单元以根据其他预测模式执行预测。作为示例,预测处理单元可以包括调色板单元、帧内块复制单元(其可形成运动补偿单元的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可包括更多、更少或不同的功能组件。
如图4所示,首先,解码器300可以接收包括经编码的视频数据的比特流。例如,图4中的存储器可以称为编解码图片缓冲器(CPB),以存储包括该经编码的视频数据的比特流,该比特流用于等待由视频解码器300的组件进行解码。存储在CPB中的视频数据例如可从计算机可读介质110(图2)等处获得。此外,CPB还可以存储例如视频解码器300各个单元的输出的临时数据。解码缓存通常存储解码图片,当对比特流的后续数据或图片进行解码时,视频解码器300可将解码图片输出和/或用作参考视频数据。CPB存储器和解码缓存可由多种存储器设备形成,如包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)的动态随机存取存储器(DRAM)或其他类型的存储器设备。CPB存储器和解码缓存可以由同一存储设备或不同的存储设备提供。在各种示例中,CPB存储器可与视频解码器300的其他组件位于同一芯片,如图所示,也可与其他组件不位于同一芯片。
图4中所示的各种单元经示出以帮助理解由视频解码器300执行的操作。这些单元可实现为固定功能电路、可编程电路或两者的组合。与图3类似,固定功能电路是指提供特定功能并预先设置在可执行操作上的电路。可编程电路是指可经编程以执行多种任务并在可执行操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以软件或固件的指令所界定的方式操作的软件或固件。固定功能电路可执行软件指令(来接收参数或输出参数等),但固定功能电路执行的操作类型通常是固定的。在一些示例中,一个或多个单元可以为不同的电路块(固定功能电路块或可编程电路块),且在一些示例中,一个或多个单元可以为集成电路。
视频解码器300可包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(如目标代码)。
接着,熵解码单元可以对接收的比特流进行熵解码,以从中解析出对应于图片的编码信息。
接着,解码器300可以根据解析的编码信息进行解码转换处理,用于生成显示视频数据。根据本公开的一些实施例,位于解码端的解码器300可执行的操作可以参考如图4中示出的解码转换处理,该解码转换处理可以理解为包括一般的解码处理,以生成用于由显示设备进行显示的显示图片。
在如图4所示的解码器300中,熵解码单元可以从诸如存储器120接收包括经编码的视频的比特流,并对其进行熵解码以再现语法元素。逆量化和逆变换单元(图4中示出的“逆量化&逆变换”)、重构单元和滤波器单元可以基于从比特流提取的语法元素产生经解码的视频,例如,生成解码图片。
一般来说,视频解码器300逐块地重构图片。视频解码器400可对每一个块单独执行重构操作,其中当前正被重构(即解码)的块可被称作“当前块”。
具体的,熵解码单元可对限定量化变换系数块的量化变换系数的语法元素以及量化参数(QP)和/或变换模式指示等变换信息进行熵解码。逆量化和逆变换单元可使用与量化变换系数块相关联的QP来确定量化程度,且同样可确定要应用的逆量化程度。例如,逆量化和逆变换单元可执行逐比特左移操作以对量化变换系数进行逆量化。逆量化和逆变换单元由此可形成包括变换系数的变换系数块。在形成变换系数块之后,逆量化和逆变换单元可将一个或多个逆变换应用于变换系数块以产生与当前块相关联的残差块。例如,逆量化和逆变换单元可将逆DCT、逆整数变换、逆卡洛变换(KLT)、逆旋转变换、逆方向变换或其他逆变换应用于系数块。
此外,预测处理单元根据由熵解码单元进行熵解码的预测信息语法元素产生预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元可产生预测块。在此情况下,预测信息语法元素可以指示解码缓存中的参考图片(从此参考图片中检索参考块),以及指示识别参考图片中的参考块相对于当前图片中当前块位置的运动矢量。运动补偿单元通常可以以基本上类似于关于图3中的运动补偿单元所描述的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示对当前块进行帧内预测,则帧内预测单元可根据由预测信息语法元素指示的帧内预测模式来产生预测块。同样,帧内预测单元通常可以以基本上类似于关于图3中的帧内预测单元所描述的方式来执行帧内预测过程。帧内预测单元可从解码缓存中检索当前块相邻样点的数据。
重构单元可使用预测块和残差块重构当前块。例如,重构单元可将残差块的样点添加至预测块的对应样点以重构当前块。
接着,滤波器单元可对重构块执行一个或多个滤波器操作。例如,滤波器单元可执行去块操作以减少沿重构块边缘的块效应伪像。可以理解的是,滤波操作不必在所有示例中执行,即,在一些情况下可以跳过滤波操作。
视频解码器300可将重构块存储在解码缓存中。如上所述,解码缓存可向诸如运动补偿、运动估计单元提供参考信息,如用于帧内预测的当前图片的样点和用于后续运动补偿的先前解码图片的样点。此外,视频解码器300可输出来自解码缓存的解码图片以供后续呈现在显示设备(如图2的显示设备118)上。
图5为本公开至少一个实施例提供的全帧内配置(All Intra,AI)的编码结构示意图。
例如,如图5所示,在全帧内AI配置中,视频中的所有帧在编码过程均按I帧编码,即编解码过程完全独立,并且对其他帧不存在依赖关系。同时,编码过程的量化参数(QP)不随编码位置波动,均与首帧的QP值(QPI)相等。如图5所示,在全帧内AI配置中,视频中的所有帧的播放顺序和编码顺序相同,即视频帧的播放顺序计数(POC)与编码顺序计数(EOC)相同。
图6为本公开至少一个实施例提供的低延迟(LD)配置的编码结构示意图。
通常,在实际应用中,低延迟LD配置主要适用于低延时需求的实时通信环境。如图6所示,在LD配置下,所有P帧或B帧均采用广义P/B帧预测,并且所有帧的EOC仍与POC一致。对于低延时配置提出了“1+x”方案,其中“1”为一幅最近邻参考帧,“x”为x幅高质量的参考帧。
图7A为本公开至少一个实施例提供的一种帧间预测编码的示意图。图7B为本公开至少一个实施例提供的一种帧间预测技术的示意流程图。
视频预测编码的主要思想是通过预测来消除像素间的相关性。根据参考像素位置的不同,视频预测编码技术主要分为两大类:(1)帧内预测,即利用当前图像(当前视频帧)内已编码像素生成预测值;(2)帧间预测,即利用当前图像(当前视频帧)之前已编码图像的重建像素生成预测值。帧间预测编码是指利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。如图7A和图7B所示,HEVC/H265标准中帧间预测编码算法是通过将已编码的图像作为当前图像的参考图像,来获得当前图像的各个块在参考图像中的运动信息,运动信息通常用运动矢量和参考帧索引表示。参考图像可以是前向、后向或者双向的。使用帧间编码技术得到当前块的信息时,可以从邻近块直接继承运动信息,也可以通过运动估计在参考图像中搜索匹配块得到对应的运动信息。接着通过运动补偿过程得到当前块的预测值。
当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计。用于预测的图像称为参考图像,参考块到当前块(即当前像素块)的位移称为运动矢量,当前块与参考块的差值称为预测残差。
视频编解码标准中定义了三种类型的图像:I帧图像、P帧图像和B帧图像。I帧图像仅能使用帧内编码,P帧图像和B帧图像可以使用帧间预测编码。P帧图像的预测方式是由前一帧图像预测当前图像,这种方式称为“前向预测”。也就是在前向参考图像中寻找当前块的匹配块(参考块)。B帧图像可以使用3种预测方式:前向预测、后向预测以及双向预测。
帧间预测编码依赖于帧间的关联性,包括运动估计、运动补偿等过程。例如,一些示例中,帧间预测的主要过程包括如下步骤:
步骤1:创建运动矢量(MV)候选列表,进行拉格朗日率失真优化(RDO)计算,选取失真最小的MV作为初始MV;
步骤2:在步骤1中找到匹配误差最小的点作为接下来搜索的起始点;
步骤3:步长从1开始,以2的指数递增,进行8点钻石搜索,该步骤中可以设置搜索的最大次数(以某个步长遍历一遍就算1次);
步骤4:如果通过步骤3搜索得到的最佳步长为1,则需要以该最佳点为起始点做1次两点钻石搜索,因为前面8点搜索的时候,这个最佳点的8个邻点会有两个没有搜索到;
步骤5:如果步骤3搜索得到的最佳步长大于某个阈值(iRaster),则以步骤2得到的点作为起始点,做步长为iRaster的光栅扫描(即在运动搜索的范围内遍历所有点);
步骤6:在经过前面步骤1-5之后,以得到的最佳点为起始点,再次重复步骤3和4;
步骤7:保存与最佳匹配点对应的MV作为最终MV和绝对误差和(SAD)。
在视频编解码标准H.265/HEVC中,帧间预测技术主要包括采用了时域和空域运动视频预测思想的Merge和高级运动矢量预测AMVP技术。这两种技术的核心思想都是通过建立一个候选运动矢量预测MV列表,并选取性能最优的一个MV作为当前编码块的预测MV。例如,在Merge模式中,为当前预测单元(PU)建立一个MV候选列表,列表中存在5个候选MV(及其对应的参考图像)。通过遍历这5个候选MV,并进行率失真代价的计算,最终选取率失真代价最小的一个作为该Merge模式的最优MV。若编/解码端依照相同的方式建立该候选列表,则编码器只需要传输最优MV在候选列表中的索引即可,这样大幅节省了运动信息的编码比特数。
视频编解码标准VVC沿用了HEVC中运动矢量预测技术,但又进行了一些优化。例如扩展Merge运动矢量候选列表的长度,修改候选列表构造过程等,同时也增加了一些新的预测技术。例如仿射变换技术,自适应运动矢量精度技术等。
图8A和图8B示出了本公开至少一个实施例提供的仿射运动补偿的示意图。图8A示出的是2个控制点的仿射变换,即当前块的仿射运动矢量由2个控制点(4个参数)生成。图8B示出的是3个控制点的仿射变换,即当前块的仿射运动矢量由3个控制点(6个参数)生成。
对于4参数仿射运动模型,中心像素为(x,y)的子块运动矢量的计算方法如下:
MVh=(bh-ah)/W*x+(bv-av)/w*y+ah
MVv=(bv-av)/W*x+(bh-ah)/w*y+av
其中,参考点矢量a,b在二维空间可以分别表示为(ah,av)、(bh,bv),当前中心像素2点4参数仿射运动模型的水平方向预测矢量为(MVh,MVv),可以用a、b矢量表示为如下(同理可知中心像素2点4参数仿射运动模型的垂直方向预测),其中w和h分别代表当前块的宽度和高度。
如果使用a、b、c三个控制点,即6参数仿射运动模型,中心像素为(x,y)的子块的运动矢量计算方法如下:
MVh=(bh-ah)/W*x+(ch-ah)/h*y+ah
MVv=(bv-av)/W*x+(cv-av)/h*y+av
6参数仿射运动模型相比于4参数仿射运动模型增加了一个参考点c,运动矢量表示为(ch,cv)。
图9为本公开至少一个实施例提供的一种视频数据处理方法的示意图。
例如,在本公开至少一个实施例中,提供了一种视频数据处理方法10。视频数据处理方法10可以应用于与视频编解码相关的各种应用场景,例如可以应用于手机、计算机等终端,又例如应用于视频网站/视频平台等,本公开的实施例对此不作具体限制。例如,如图9所示,视频数据处理方法10包括以下操作S101至S102。
步骤S101:对于视频的当前视频块,确定使用第一帧间预测模式进行编解码。
步骤S102:基于确定,执行当前视频块与视频的比特流之间的转换。在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。
例如,在本公开至少一个实施例中,视频可以是拍摄的摄像作品、从网络下载的视频、或者本地存储的视频等,也可以是LDR视频、SDR视频等,本公开的实施例对此不作任何限制。
例如,在本公开至少一个实施例中,视频的第一显示模式可以定义视频画面从某一展开起始位置,沿着某一展开方向逐渐增大(例如,水平方向或者垂直方向)。例如,在一些示例中,在视频的比特流中存在与第一显示模式相关联的一个或多个语法元素。例如,在一些示例中,视频画面从左到右展开(即水平方向),又例如,在一些示例中,视频画面从上到下展开(即垂直方向),反之亦然。例如,在一个示例中,视频的第一显示模式定义了基础区域的尺寸、位置等信息。需要说明的是,“第一显示模式”并不受限于特定的某一个或一些显示模式,也不受限于特定的顺序。
例如,在本公开的至少一个实施例中,对于视频的当前视频块可以选择任意帧间预测模式。例如,在H.265/HEVC标准中,当前视频块可以选择Merge模式、AMVP模式来进行帧间预测编码。例如,对于Merge模式,为当前块构建运动矢量MV候选列表,该候选列表包括5个候选MV。这5个候选MV通常包括空域和时域两种类型。空域最多提供4个候选MV,时域最多提供1个候选MV。若当前MV候选列表中候选MV的个数达不到5个,则需要使用零矢量(0,0)进行填补已达到规定的数目。类似于Merge模式,AMVP模式下构建的MV候选列表也包含空域和时域两种情形,不同的是AMVP列表长度仅为2。
H.266/VVC标准对Merge模式的候选列表的大小进行了扩展,最多可以有6个候选MV。VVC标准还引入了新的帧间预测技术,例如,仿射预测模式、帧内帧间组合预测(CIIP)模式、几何划分预测模式(TPM)、双向光流(BIO)方法、双向加权预测(BCW)、带运动矢量差的Merge模式等。在本公开的实施例中,对于当前视频块,可用的帧间预测模式可以包括上述帧间预测模式中的任意一个,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,为了获得较好的压缩性能同时保持图像的质量,使用率失真优化(RDO)来选择最佳的帧间预测模式和运动矢量。例如,在本公开的实施例中,“第一帧间预测模式”用于指示用于当前视频块的帧间预测模式。需要说明的是,“第一帧间预测模式”并不受限于特定的某一个或一些帧间预测模式,也不受限于特定的顺序。
例如,在本公开至少一个实施例中,第一帧间预测模式可以是上述可用的帧间预测模式中的任一种,例如Merge模式、高级运动矢量预测AMVP模式、带运动矢量差的Merge模式、双向加权预测模式或者仿射预测模式等,本公开的实施例对此不作限制。
例如,在本公开的至少一个实施例中,对于步骤S102,当前视频块与比特流之间的转换可以包括将当前视频块编码到比特流,也可以包括从比特流解码当前视频块。例如,该转换过程可以包括编码过程,也可以包括解码过程,本公开的实施例对此不作限制。
例如,在本公开的至少一个实施例中,在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。例如,在一些示例中,当前视频块的运动矢量与基础区域的位置和/或尺寸有关。例如,在一些示例中,当前视频块所使用的参考像素被限制在特定区域内。如此,通过限制当前视频块的帧间预测模式只能采用有效区域内的参考像素,使得可以根据实际显示的显示区域,对视频的比特流进行部分解码,从而减少未显示部分的解码资源消耗,有效提升视频编解码的效率,进而提升用户的产品使用体验。
例如,在本公开的实施例中,基础区域是指视频中始终会显示的区域,可以通过视频的第一显示模式来确定。例如,在本公开的实施例中,从第一显示模式定义的视频展开起始位置沿着展开方向的具有一定长度的固定区域作为基础区域(本文中也称为第一显示区域)。例如,随视频的第一显示模式不同,基础区域的位置可能会变化。例如,在图1所示的示例中,视频的第一显示模式定义视频画面从最左侧虚线处,沿着从左到右的方向逐渐增大。在这种情况下,固定区域是从视频画面的最左侧开始,从左到右延伸一定长度的区域。例如,在一些示例中,视频的第一显示模式定义视频画面从最上方开始,沿着从上到下的方向逐渐增大。在这种情况下,固定区域是从视频画面的最上方开始,从上到下延伸一定长度的区域。例如,在一些示例中,基础区域与整个显示区域的长度比为1:1。又例如,在一些示例中,基础区域与整个显示区域的长度比为1:2。本公开的实施例对基础区域的位置/尺寸不作限制,可以根据实际情况来设置。
例如,在本公开至少一个实施例中,可以通过与第一显示模式相关的一个或多个语法元素来定义第一显示模式的应用、视频的展开方向、基础区域的尺寸等,本公开的实施例对此不作限制,可以根据实际情况来设置。
图10为本公开至少一个实施例提供的一种滑卷屏的视频编解码的示意图。
例如,如图10所示,在本公开至少一个实施例中,当上述视频数据处理方法10应用于带有滑卷屏的显示装置中时,在滑卷屏的卷收过程中,对应于卷起区域的视频内容可以不显示,从而与卷起区域对应的比特流可以不用解码。在图10中,斜线区域表示未参与解码的区域。当滑卷屏从全展开状态逐渐卷起时,未参与解码的区域的尺寸也逐渐变大。因此,根据滑卷屏的实际显示区域,对接收到的比特流进行部分解码,达到节省解码过程资源消耗的技术效果,从而提升带有滑卷屏的产品的续航能力,提升用户的产品体验感。
例如,在本公开至少一个实施例中,如图10所示,滑卷屏在卷收过程中,P帧图像的部分解码需要满足待显示的当前视频帧的MV预测范围应为参考帧的显示区域的子集。在现有编码标准设计的片(Tile)编码虽然能对画面进行区域划分,但只对Tile中包含的编码树单元CTU按扫描顺序编码以提升并行编解码的能力。由于Tile只对帧内预测的范围进行了限制,即帧内预测模式不会利用超出Tile范围的像素信息,然而,对于帧间编码和环路滤波模块,可能会超出Tile边界。这也使得Tile需要解码参考帧整帧的图像,不能实现有限范围的独立解码,因此,现有Tile编码不能适配于滑卷屏等产品的编码需求。基于上述技术问题,本公开的至少一个实施例提供了一种渐进式的编码结构。
图11为本公开至少一个实施例提供的一种当前视频帧的划分方式的示意图。
例如,在本公开至少一个实施例中,如图11所示,当前视频帧包括第一显示区域和沿着展开方向(从左到右)依次相邻布置的至少一个显示子区域。例如,在图11所示的示例中,第一显示区域表示为左侧的basic_tile区域,至少一个显示子区域表示为右侧的至少一个enhanced_tile区域。
例如,在一些示例中,第一显示区域可以为固定的显示区域,例如常规显示屏的固定显示区域。例如,在滑卷屏的应用场景中,如图10所示,第一显示区域是在滑卷屏的卷收过程中始终会显示的显示区域。例如,在一些示例中,第一显示区域为视频画面的一半区域,例如占据视频画面的二分之一的CTU数量。又例如,在一些示例中,第一显示区域为视频画面的三分之一区域,例如占据视频画面的三分之一的CTU数量。又例如,在一些示例中,第一显示区域为视频画面的整个区域,需要说明的是,本公开的实施例对此不作具体限制,可以根据实际需求来设置。还需要说明的是,在本公开的实施例中,“第一显示区域”用于指示固定显示的显示区域(即基础区域),并不受限于特定的某一个显示区域,也不受限于特定的顺序。
例如,在本公开至少一个实施例中,当前视频帧中除了第一显示区域以外的其他显示区域可以被平均划分成至少一个显示子区域,如图11所示的至少一个enhanced_tile。例如,随着滑卷屏的卷收状态不同,显示子区域的个数不同。需要说明的是,在本公开的实施例中,至少一个显示子区域的每一个大小相同,并且每一个显示子区域的宽度或者高度大于一个CTU。
图12A为本公开至少一个实施例提供的一种滑卷屏的转轴方向的示意图,图12B为本公开至少一个实施例提供的另一种滑卷屏的转轴方向的示意图。
例如,在本公开至少一个实施例中,视频的编码方向通常是在水平方向上从左到右,然后在垂直方向上从上到下。在图12A所示的示例中,滑卷屏的转轴方向视为与视频的编码方向垂直。例如,在本公开至少一个实施例中,当滑卷屏在水平方向卷展时,转轴从左到右移动,待显示区域越来越大。在图12B所示的示例中,滑卷屏的转轴方向视为与视频的编码方向平行。例如,在本公开至少一个实施例中,当滑卷屏在垂直方向卷展时,转轴从上到下移动,待显示区域越来越大。
例如,在图12A所示的示例中,当前视频帧可以包括最左侧的第一显示区域(basic_tile)和沿着展开方向(从左到右)依次相邻布置的至少一个显示子区域(enhanced_tile)。例如,在图12B所示的示例中,当前视频帧可以包括最上方的第一显示区域(basic_tile)和沿着展开方向(从上到下)依次相邻布置的第一显示区域下方的至少一个显示子区域(enhanced_tile)。
需要说明的是,在本公开的实施例中,“第一显示子区域”用于指示在基础区域/第一显示区域(basic_tile)右侧的显示子区域(enhanced_tile),“第二显示子区域”用于指示在基础区域/第一显示区域(basic_tile)下方的显示子区域(enhanced_tile)。“第一显示子区域”和“第二显示子区域”并不受限于特定的某一个或一些显示子区域,也不受限于特定的顺序。
例如,在本公开至少一个实施例中,响应于当前视频块位于当前视频帧的第一显示区域内,当前视频块的运动矢量在第一运动矢量预测范围内。
例如,在本公开至少一个实施例中,如图11所示,对于基础区域(basic_tile)采用独立的编码方式。例如,对于视频的每一帧视频帧,都需要解码基础区域basic_tile。对于位于basic_tile区域内的当前视频块,定义一个有效的MV预测范围(即第一MV预测范围),使得与当前视频块相关联的MV都在该MV预测范围内。
图13示出了本公开至少一个实施例提供的位于第一显示区域内的视频块的编码示意图。
例如,在本公开至少一个实施例中,第一运动矢量预测范围基于当前视频块的位置、运动矢量预测精度、第一显示区域的边界来确定。
例如,在一些示例中,如图13所示,第一显示区域basic_tile的四个边界分别表示为:左侧边界basic_tilel、右侧边界basic_tiler、上方边界basic_tilet和下方边界basic_tileb,当前视频块(例如,图13中所示的PU)的坐标为(x,y)。考虑到在不同编码器中MV预测精度不一样,MV预测精度可以表示为2-n,其中n为整数。例如,在本公开至少一个实施例中,可以通过如下等式(1)-(4)来确定第一MV预测范围:
Bleft=(basic_tifel-x+2n)<<n 等式(1)
Bright=(basic_tiler-x-2n)<<n 等式(2)
Btop=(basic_tilet-y+2n)<<n 等式(3)
Bbottom=(basic_tileb-y-2n)<<n 等式(4)
在上述等式(1)-(4)中,Bleft表示第一MV预测范围的左侧边界、Bright表示第一MV预测范围的右侧边界,Btop表示第一MV预测范围的上方边界、Bbottom表示第一MV预测范围的下方边界。例如,在本公开的一些实施例中,MV预测精度可以由语法元素来指示,也可以是默认精度等,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,通过等式(1)-(4)限定的第一MV预测范围既是当前视频块的初始MV(对应于搜索起始点)的限制范围,也是当前视频块的最终MV(对应最佳匹配点)的限制范围。如此,确保当前视频块的最终MV在相应的MV预测范围(第一MV预测范围)内。
例如,在本公开至少一个实施例中,响应于当前视频块位于基础区域内,当前视频块使用的所有参考像素在基础区域内。该基础区域同样可以由上述等式(1)-(4)来限定。
例如,在本公开至少一个实施例中,对于位置为(x,y)并且位于basic_tile内的当前视频块,相关联的所有运动矢量都应满足以下等式(5)和(6)。
在等式(5)和等式(6)中,mv_x表示MV的水平分量,mv_y表示MV的垂直分量。例如,基于上述等式(1)至(6),获取位于basic_tile内的当前视频块的第一MV预测范围,从而判断与当前视频块相关的MV是否溢出边界。
例如,在本公开至少一个实施例中,对于当前视频块的MV候选列表,可以判断候选列表中每一个MV是否在相应的MV预测范围内。例如,在一些示例中,如果判断某一个MV不在该MV预测范围内,从候选列表中移除该MV,不会选择该MV作为初始MV,以保证MV的搜索起始点在相应的MV预测范围内。
图14为本公开至少一个实施例提供的当前视频块位于第一显示区域的边界的示意图。
例如,在本公开至少一个实施例中,在选择初始MV确定搜索起始点的过程中,无论是以Merge方式还是以AMVP方式进行帧间预测,当创建时域候选列表时,需要使用时域上相邻的编码帧的相应位置处的参考块的运动信息。如图14所示,在时域候选列表构建中,通常使用参考块H的运动信息,若参考块H不可用,则用参考块C进行替换。
例如,在图14所示的示例中,在当前视频块处于第一显示区域basic_tile的右侧边界时,位于位置H的参考块的运动信息无法获取(因为未解码)。因此,在编码过程中,可以赋给参考块H的运动信息一个很大的误差值,使得该运动信息不会成为最优的候选MV,即选择参考块C的运动信息作为时域候选列表。
例如,在本公开至少一个实施例中,当前视频帧包括第一显示区域和沿着展开方向依次相邻布置的至少一个显示子区域,并且展开方向为从左到右。响应于当前视频块位于当前视频帧中的第一显示区域右侧的第一显示子区域内,当前视频块的运动矢量被限制在第二运动矢量预测范围内。
例如,在本公开至少一个实施例中,第二运动矢量预测范围基于当前视频块的位置、运动矢量预测精度、第一显示区域的边界和第一显示子区域的宽度来确定。
例如,在本公开至少一个实施例中,如图12A所示,当前视频帧包括在左侧的第一显示区域basic_tile和在右侧的至少一个显示子区域enhanced_tile。每个显示子区域enhanced_tile的宽度不小于一个CTU的宽度。
例如,在一些示例中,显示子区域enhanced_tile的MV预测范围(第二MV预测范围)的左侧边界为当前视频帧的basic_tile的左侧边界,第二MV预测范围的右侧边界为当前视频块所在的enhanced_tile的左侧邻近enhanced_tile的右边界。例如,在当前视频块所在的enhanced_tile的左侧不存在另一个enhanced_tile的情况下,第二MV预测范围的右侧边界为basic_tile的右侧边界。
例如,在本公开至少一个实施例中,通过以下等式(7)至(12)来确定位于第一显示区域basic_tile右侧的第一显示子区域enhanced_tile内的当前视频块的MV预测范围,即第二MV预测范围。
leftk=(basic_tilel-x+2n)<<n 等式(7)
rightk=(basic_tiler+(k-1)*sen-x-2n)<<n 等式(8)
topk=(basic_tilet-y+2n)<<n 等式(9)
bottomk=(basic_tileb-y-2n)<<n 等式(10)
在等式(7)至(12),x,y表示当前视频块(例如PU)的位置,第一显示区域basic_tile的四个边界分别表示为:basic_tilel、basic_tiler、basic_tilet和basic_tileb,sen表示第一显示子区域enhanced_tile的宽度,MV的预测精度为2-n,n为整数。左侧边界leftk、右侧边界rightk、上方边界topk、下方边界bottomk表示在basic_tile右侧的、从左到右方向上的第k个enhanced_tile的MV边界,k为不小于0的整数。即该四个MV边界构成位于显示区域basic_tile右侧的显示子区域enhanced_tile的当前视频块的MV预测范围,即第二MV预测范围。
与等式(5)和(6)类似,对于位于第一显示区域basic_tile右侧的、从左到右方向上的第k个enhanced_tile内的当前视频块,与当前视频块相关联的所有MV都应满足等式(11)和(12)的限制。
/>
在等式(10)和等式(11)中,mv_x表示MV的水平分量,mv_y表示MV的垂直分量。例如,基于上述等式(11)至(12),从而判断与当前视频块相关的MV是否溢出边界。
例如,在本公开至少一个实施例中,响应于当前视频块位于第一显示区域右侧的第k个显示子区域内并且k=1,第二MV预测范围等于第一MV预测范围。
例如,在本公开至少一个实施例中,响应于当前视频块位于第一显示区域右侧的第k个显示子区域内并且k为大于1的整数,第一MV预测范围的第一右侧边界与第二MV预测范围的第二右侧边界不同。
需要说明的是,在本公开的实施例中,“第一右侧边界”用于指示第一MV预测范围的右侧边界,“第二右侧边界”用于指示第二MV预测范围的右侧边界。“第一右侧边界”和“第二右侧边界”并不受限于特定的某一个或一些边界,也不受限于特定的顺序。
例如,基于上述等式(8)和等式(2)可知,当k=1时,第二MV预测范围的右侧边界rightk等于第一MV预测范围的右侧边界Bright,第一MV预测范围等于第二MV预测范围。当k为大于1的整数时,rightk不等于Bright。基于等式(1)至等式(4)和等式(7)至等式(10)可知,除了右侧边界以外,第一MV预测范围其他三条边界分别等于第二MV预测范围其他三条边界。
例如,在本公开至少一个实施例中,当前视频帧包括第一显示区域和沿着展开方向依次相邻布置的至少一个显示子区域,并且展开方向为从上到下。响应于当前视频块位于第一显示区域下方的第二显示子区域内,当前视频块的运动矢量被限制在第三运动矢量预测范围内。
例如,在本公开至少一个实施例中,第三运动矢量预测范围基于当前视频块的位置、运动矢量预测精度、第一显示区域的边界、第二显示子区域的高度来确定。
例如,在本公开至少一个实施例中,如图12B所示,当前视频帧包括在上方的第一显示区域basic_tile和在下方的至少一个显示子区域enhanced_tile。每个显示子区域enhanced_tile的高度不小于一个CTU的高度。
例如,在本公开至少一个实施例中,通过以下等式(13)至(16)来确定位于第一显示区域basic_tile下方的第二显示子区域enhanced_tile内的当前视频块的MV预测范围,即第三MV预测范围。
leftm=(basic_tifel-x+2n)<<n 等式(13)
rightm=(basic_tiler-x-2n)<<n 等式(14)
topm=(basic_tilet-y+2n)<<n 等式(15)
bottomm=(basic_tileb+(m-1)*sen-y-2n)<<n 等式(16)
例如,位于在basic_tile下方的、从上到下方向上的第m个enhanced_tile的当前视频块的MV预测范围,即第三MV预测范围,由等式(13)-(16)定义的左侧边界leftm、右侧边界rightm、上方边界topm、下方边界bottomm来限定。在等式(13)至(16),x,y表示当前视频块(例如PU)的位置,第一显示区域basic_tile的四个边界分别表示为:basic_tilel、basic_tiler、basic_tilet和basic_tileb,sen表示第二显示子区域enhanced_tile的高度,MV的预测精度为2-n,n为整数,m为不小于0的整数。
与等式(11)和(12)类似,在当前视频块位于第一显示区域basic_tile下方的第m个enhanced_tile时,与当前视频块相关联的所有MV都应满足等式(17)和(18)的限制。
在等式(17)和等式(18)中,mv_x表示MV的水平分量,mv_y表示MV的垂直分量。例如,基于上述等式(17)至(18),从而判断与当前视频块相关的MV是否溢出边界。
例如,在本公开至少一个实施例中,响应于当前视频块位于第一显示区域下方的第m个第二显示子区域内并且m=1,第三运动矢量预测范围等于第一运动矢量预测范围。
例如,在本公开至少一个实施例中,响应于当前视频块位于第一显示区域下方的第m个第二显示子区域内并且m为大于1的整数,第一运动矢量预测范围的第一下方边界与第三运动矢量预测范围的第三下方边界不同。
需要说明的是,在本公开的实施例中,“第一下方边界”用于指示第一MV预测范围的下方边界,“第三下方边界”用于指示第三MV预测范围的下方边界。“第一下方边界”和“第三下方边界”并不受限于特定的某一个或一些边界,也不受限于特定的顺序。
例如,基于上述等式(4)和等式(16)可知,当m=1时,第三MV预测范围的下方边界bottomm等于第一MV预测范围的下方边界Bbottom,第一MV预测范围等于第三MV预测范围。当k为大于1的整数时,bottomm不等于Bbottom。基于等式(1)至等式(4)和等式(13)至等式(16)可知,除了下方边界以外,第一MV预测范围其他三条边界分别等于第三MV预测范围其他三条边界。
例如,在本公开至少一个实施例中,响应于当前视频块位于当前视频帧的第一显示区域或者基础区域以外,运动矢量预测候选列表中的时域候选运动矢量预测值使用空域候选运动矢量预测值来计算。
例如,在一些示例中,对于当前视频块位于第一显示区域/基础区域以外的情况(例如,位于第一显示区域的右侧或者下方),无论是采用Merge还是AMVP模式,在构建时域候选列表的过程中无法获取参考块H和参考块C的运动信息。例如,在一些示例中,按照空域候选列表顺序选取第一个参考块的运动矢量比例伸缩MV加入到时域候选列表中,如以下等式(19)所示。
其中MVx_ref表示在位置X处的参考块的运动矢量,其中x=A0、A1、B0、B1、B2。td与tb分别表示当前视频块与X参考块分别到各自的参考图像之间的距离。
需要说明的是,本公开的实施例并不限制具体采用哪一个空域候选运动矢量预测值来取代时域候选运动矢量预测值,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,执行当前视频帧的当前视频块与视频的比特流之间的转换可以包括解码过程。例如,在一些示例中,将接收到的比特流进行全部解码,以供显示。又例如,在一些示例中,在显示终端只进行部分显示的情况下,例如,显示终端具有图1所示的滑卷屏,仅需要对接收到的比特流进行部分解码,从而减少解码资源的使用,提高视频的编解码效率。
图15为本公开至少一个实施例提供的另一种视频数据处理方法的示意图。
例如,在本公开至少一个实施例中,提供了另一种视频数据处理方法30。视频数据处理方法30可以应用于与视频解码相关的各种应用场景(即,应用于解码端)。例如,如图15所示,视频数据处理方法30包括以下操作S301至S303。
步骤S301:接收视频的比特流。
步骤S302:确定视频的当前视频块使用第一帧间预测模式进行编解码。
步骤S303:基于确定,对比特流进行解码,在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。
例如,在本公开至少一个实施例中,对于解码侧,基于接收到的视频的比特流,可以确定视频是否应用第一显示模式以及相应的视频展开方向。例如,在一些示例中,当接收到的比特流中包括语法元素“enhanced_tile_enabled_hor”(或者该语法元素的值为1)时,则当前视频应用了第一显示模式,并且展开方向为水平方向(例如从左到右)。又例如,在另一些示例中,当接收到的比特流中包括语法元素“enhanced_tile_enabled_ver”(或者该语法元素的值为1)时,则当前视频应用了第一显示模式,并且展开方向为垂直方向(例如从上到下)。
需要说明的是,在本公开的实施例中,对于解码过程,第一显示模式的应用不仅仅基于接收到的比特流中的相关语法元素来确定,还会考虑显示终端的实际情况。例如,在一些示例中,当显示终端的视频显示方式与比特流中标识的第一显示模式不匹配时,则不应用第一显示模式。例如,当比特流中的相关语法元素指示当前视频应用第一显示模式并且展开方向为水平方向,同时,显示终端的视频显示方式为在垂直方向上卷展时,则确定对于当前视频不应用第一显示模式。又例如,当比特流中的相关语法元素指示对于当前视频应用第一显示模式并且展开方向为水平方向,同时,显示终端的视频显示方式常规显示(例如全屏显示),无需卷展时,则确定对于当前视频不应用第一显示模式。本公开的实施例对此不作具体限制,可以根据实际情况来设置。
例如,在本公开至少一个实施例中,对于步骤S303,对比特流进行解码包括:确定当前视频帧的待解码区域;基于待解码区域,对比特流进行解码。待解码区域至少包括与基础区域对应的第一显示区域。
例如,在本公开至少一个实施例中,如图11所示,当前视频帧的编码主要包括基础区域/第一显示区域basic_tile的编码和从左到右依次相邻布置的至少一个显示子区域enhanced_tile的编码。例如,视频中的每一帧视频帧的basic_tile区域都需要解码,enhanced_tile区域的解码数量可以根据显示区域的尺寸和上一帧解码enhanced_tile数量来确定。例如,在一些示例中,当前视频帧最多只能比相应的参考帧多解码一个enhanced_tile。
例如,在本公开至少一个实施例中,只需要对待显示的显示区域进行解码,因此需要限定解码过程中的待解码区域。例如,在本公开的实施例中,待解码区域以编码单元边界为界限,或者以编码单元作为待解码区域的单位。需要说明的是,在本公开的实施例中,以编码单元为编码树单元CTU作为示例来描述。
例如,在本公开至少一个实施例中,可以基于当前视频帧的待显示的像素数量(lt)和视频编码单元CTU数量(nt)、第一显示区域(basic_tile)的CTU数量(nbasic_tile)、前一视频帧的已显示的像素数量(lt-1)和前一视频帧的已解码区域的CTU数量(bt-1)中的至少一个确定待解码区域(dect)。
例如,在本公开至少一个实施例中,响应于当前视频帧待显示的CTU数量(nt)大于前一视频帧的已解码区域的CTU数量(bt-1),或者响应于当前视频帧待显示的CTU数量(nt)等于前一视频帧的已解码区域的CTU数量(bt-1),并且当前视频帧待显示的像素数量(lt)大于前一视频帧的已显示的像素数量(lt-1),确定待解码区域(dect)包括前一视频帧的已解码区域(dect-1)和一个新的显示子区域(enhanced_tile)。
例如,在本公开至少一个示例中实施例中,当前视频帧最多只比前一视频帧多解码一个显示子区域enhanced_tile,即多解码一个新的显示子区域enhanced_tile。
例如,在本公开至少一个实施例中,响应于当前视频帧待显示的CTU数量(nt)大于第一显示区域的CTU数量(nbasic_tile),并且当前视频帧待显示的CTU数量(nt)小于前一视频帧的已解码区域的CTU数量(bt-1),或者响应于当前视频帧待显示的CTU数量(nt)大于第一显示区域的CTU数量(nbasic_tile),当前视频帧待显示的CTU数量(nt)等于前一视频帧的已解码区域的CTU数量(bt-1),并且当前视频帧待显示的像素数量(lt)不大于前一视频帧的已显示的像素数量(lt-1),确定当前视频帧的待解码区域(dect)包括当前视频帧的待显示区域。例如,该当前视频帧的待显示区域包括当前视频帧待显示的像素数量(lt)。
例如,在本公开至少一个实施例中,可以根据以下等式来确定待解码区域(dect),如下所示:
例如,若nbasic_tile<nt<bt-1或者nt=bt-1>nbasic_tile,lt≤lt-1,表示视频的显示内容在变小或者保持不变,则解码当前视频帧的待显示区域的内容。若nt>bt-1(nt>nbasic_tile)或者nt=bt-1>nbasic_tile,lt>lt-1,表示视频的显示内容在变大或者有变大的趋势,则相比于前一帧的已解码区域,当前视频帧需要多解码一个enhanced_tile对应的视频内容。
例如,在本公开至少一个实施例中,若当前视频帧待解码区域仅包括固定显示的显示区域(例如,第一显示区域),即dect=basic_tile时,单独解码basic_tile即可。例如,若当前视频帧待解码区域包括固定显示的显示区域(例如,第一显示区域)和至少一个显示子区域(enhanced_tile),即dect=basic_tile+αenhanced_tile时,其中α为额外需要解码的enhanced_tile数量。basic_tile和多个enhanced_tile可以并行解码。
例如,在本公开至少一个实施例中,对于无需显示的区域的CTU可以不用解码,直接用0像素填充。这样,可以提高视频的编解码效率,简化编解码过程,也可以节约产品能源。
需要说明的是,在本公开实施例中,可以用其他像素来对无需显示的区域的CTU进行填充,不一定是0像素,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,当显示终端为全部卷起状态,即不存在需要显示的区域时,根据上述确定待解码区域(dect)的等式可知,仍然需要解码基础区域basic_tile。图16为根据本公开至少一个实施例的一种在LDP配置下视频编解码***的示意框图。
例如,在本公开至少一个实施例中,关于图16中视频编解码***的一般描述可以参考图2-4的相关说明,在此不再赘述。在本公开的实施例中,对于帧间预测模式下的编码过程,限制了与当前视频块相关联的运动矢量的范围,避免使用无效的参考像素信息。对于解码过程,可以根据实际显示的区域,对比特流进行部分解码,从而减少未显示部分的解码资源消耗,提高编解码效率。
图17为根据本公开至少一个实施例的一种在LDP配置下视频数据处理方法的示意流程图。
例如,在本公开至少一个实施例中,提供了一种视频数据处理方法,如图17所示。该视频数据处理方法包括步骤S201-S206。
步骤S201:在编码端,将当前视频帧划分为basic_tile和enhanced_tile。例如,在图12A所示的示例中,编码器将一帧图像分为左右两个Tile,左侧为basic_tile,右侧为至少一个enhanced_tile。例如,在一些示例中,按照一行CTU数量进行1:1分配。例如,另在一些示例中,按照一行CTU数量进行1:2分配。又例如,当一行CTU数量为奇数时,则每行多个enhanced_tile的CTU总数量比basic_tile的一行CTU数量多一个。本公开的实施例对具体划分方式不作限制,可以根据实际需求来设置。
步骤S202:对于左侧的basic_tile采用去掉右侧耦合的独立tile编码方式,对于右侧的enhanced_tile采用依赖左侧basic_tile的方向,并且限制MV的编码方式和范围。例如,在此步骤中,涉及帧间编码AMVP和Merge过程中初始MV的选取过程以及运动搜索算法的修正,以实现比特流能够适应解码时卷展和卷收的需求。
步骤S203:获取当前时刻的滑卷屏未卷的像素数lt和前一帧时刻滑卷屏未卷的像素数lt-1,并传入解码器中。
步骤S204:解码端接收到视频的比特流(不限于H.264/H.265/H.266)。
步骤S205:获取前一帧解码区域的CTU数量bt-1。
步骤S206:根据当前时刻和前一帧时刻的滑卷屏未卷的像素数lt和lt-1、前一帧解码区域的CTU数量bt-1,确定待解码区域。例如,待解码区域包括basic_tile和相应的多个enhanced_tile。
步骤S207:对待解码区域进行解码,对未解码区域进行填充。
步骤S208:将待解码区域的内容送至显示终端显示。
需要说明的是,关于图17中所示的各个步骤S201-S206的具体操作都在上文中详细描述,在此不在赘述。
因此,通过本公开至少一个实施例提供的视频数据处理方法,可以根据待显示的区域来对视频的比特流进行部分解码,从而减少未显示部分的解码资源消耗,提高编解码效率。
需要说明的是,在本公开的各个实施例中,视频数据处理方法10的各个步骤的执行顺序不受限制,虽然上文以特定顺序描述了各个步骤的执行过程,但这并不构成对本公开实施例的限制。视频数据处理方法10中的各个步骤可以串行执行或并行执行,这可以根据实际需求而定。例如,视频数据处理方法10还可以包括更多或更少的步骤,本公开的实施例对此不作限制。
图18为根据本公开至少一个实施例的一种视频数据处理装置的示意框图。
例如,本公开至少一个实施例提供了一种视频数据处理装置40,如图18所示。视频数据处理装置40包括确定模块401和执行模块402。确定模块401被配置为对于视频的当前视频块,确定使用第一帧间预测模式进行编解码。例如,该确定模块401可以实现步骤S101,其具体实现方法可以参考步骤S101的相关描述,在此不再赘述。执行模块402被配置为基于确定,执行当前视频块与视频的比特流之间的转换,在第一帧间预测模式中,当前视频块的运动矢量的推导基于视频中的与第一显示模式对应的基础区域。例如,该执行模块402可以实现步骤S102,其具体实现方法可以参考步骤S102的相关描述,在此不再赘述。
需要说明的是,这些确定模块401和执行模块402可以通过软件、硬件、固件或它们的任意组合实现,例如,可以分别实现为确定电路401和执行电路402,本公开的实施例对它们的具体实施方式不作限制。
应当理解的是,本公开至少一个实施例提供的视频数据处理装置40可以实施前述视频数据处理方法10相似的技术效果。例如,在本公开至少一个实施例提供的视频数据处理装置40,通过上述方法,可以根据实际需要显示的区域来对比特流进行部分解码,从而减少未显示部分的解码资源消耗,提高编解码效率。
需要注意的是,在本公开的实施例中,该视频数据处理装置40可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
例如,本公开至少一个实施例还提供了一种显示装置,包括视频数据处理装置和滑卷屏。视频数据处理装置被配置为根据上述至少一个实施例提供的方法对接收到的比特流进行解码,并将解码后的像素值发送至滑卷屏以供显示。例如,在一些示例中,滑卷屏完全展开,不存在非显示区域,则视频数据处理装置对接收到的比特流进行完全解码。又例如,在另一些示例中,如图1所示,滑卷屏包括卷起部分和展开部分,即存在显示区域和非显示区域,则视频数据处理装置对接收到的比特流进行部分解码。
例如,在本公开至少一个实施例中,响应于滑卷屏在工作中包括显示区域和非显示区域,视频数据处理装置基于当前时刻和前一帧时刻的显示区域的尺寸对比特流进行解码。例如,如图1所示,在滑卷屏处于部分展开的状态时,视频数据处理装置只需要解码对应于显示区域的内容。例如,视频数据处理装置可以根据当前时刻和前一帧时刻的显示区域的尺寸确定待解码区域。例如,视频数据处理装置可以根据当前时刻和前一帧时刻的显示区域的尺寸来确定当前时刻和前一帧时刻的视频帧的待显示的像素数lt和lt-1。关于确定待解码区域的操作在前文中已详细描述,在此不再赘述。
例如,在本公开至少一个实施例中,显示装置除了视频数据处理装置和滑卷屏之外,还包括卷曲状态判断装置。例如,卷曲状态判断装置配置为检测滑卷屏的显示区域的尺寸,并将显示区域的尺寸发送至视频数据处理装置,以使得视频数据处理装置基于当前时刻和前一帧时刻的显示区域的尺寸对比特流进行解码。需要说明的是,卷曲状态判断装置可以通过软件、硬件、固件或它们的任意组合实现,例如,可以实现为卷曲状态判断电路,本公开的实施例对卷曲状态判断装置的具体实施方式不作限制。
需要说明的是,本公开的实施例不限制显示装置的类型。例如,该显示装置可以是移动终端、计算机、平板电脑、电话手表、电视机等,本公开的实施例对此不作限制。同样,本公开的实施例不限制滑卷屏的类型。例如,在本公开的实施例中,滑卷屏可以是任意类型的显示区域可变的显示屏,包括且不限于图1所示的滑卷屏类型。例如,在本公开的实施例中,显示装置所包括的视频数据处理装置可以实施为本公开中提及的视频数据处理装置40/90/600等,本公开的实施例对视频数据处理装置的具体实施方式不作限制。
需要注意的是,在本公开的实施例中,该显示装置可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
图19是本公开至少一个实施例提供另一种视频数据处理装置的示意框图。
本公开至少一个实施例还提供了一种视频数据处理装置90。如图19所示,视频数据处理装置90包括处理器910和存储器920。存储器920包括一个或多个计算机程序模块921。一个或多个计算机程序模块921被存储在存储器920中并被配置为由处理器910执行,该一个或多个计算机程序模块921包括用于执行本公开的至少一个实施例提供的视频数据处理方法10的指令,其被处理器910执行时,可以执行本公开的至少一个实施例提供的视频数据处理方法10中的一个或多个步骤。存储器920和处理器910可以通过总线***和/或其它形式的连接机构(未示出)互连。
例如,处理器910可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器910可以为通用处理器或专用处理器,可以控制视频数据处理装置90中的其它组件以执行期望的功能。
例如,存储器920可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块921,处理器910可以运行一个或多个计算机程序模块921,以实现视频数据处理装置90的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。视频数据处理装置90的具体功能和技术效果可以参考上文中关于视频数据处理方法10/30的描述,此处不再赘述。
图20为本公开至少一个实施例提供的又一种视频数据处理装置的示意框图。
本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图20示出的视频数据处理装置600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
例如,如图20所示,在一些示例中,视频数据处理装置600包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有计算机***操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604被此相连。输入/输出(I/O)接口605也连接至总线604。
例如,以下部件可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置609。通信装置609可以允许视频数据处理装置600与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储装置608。虽然图20示出了包括各种装置的视频数据处理装置600,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
例如,该视频数据处理装置600还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置609可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信***(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
例如,视频数据处理装置600可以为手机、平板电脑、笔记本电脑、电子书、电视机等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
例如,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例所公开的视频数据处理方法10。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述视频数据处理装置600中所包含的;也可以是单独存在,而未装配入该视频数据处理装置600中。
图21为本公开至少一个实施例提供的一种非瞬时可读存储介质的示意框图。
本公开的实施例还提供一种非瞬时可读存储介质。图21是根据本公开至少一个实施例的一种非瞬时可读存储介质的示意框图。如图21所示,非瞬时可读存储介质70上存储有计算机指令111,该计算机指令111被处理器执行时执行如上所述的视频数据处理方法10中的一个或多个步骤。
例如,该非瞬时可读存储介质70可以是一个或多个计算机可读存储介质的任意组合,例如,一个计算机可读存储介质包含用于获取视频的第一显示模式的计算机可读的程序代码,另一个计算机可读存储介质包含用于对于视频的当前视频块,确定当前多个可用的帧间预测模式的第一子集合的计算机可读的程序代码,又一个计算机可读存储介质包含用于从第一子集合中选择可用的第一帧间预测模式,执行当前视频帧的当前视频块与视频的比特流之间的转换的计算机可读的程序代码,该第一子集合中每个成员所使用的运动矢量的可用有效范围根据视频中与第一显示模式对应的基础区域确定。当然,上述各个程序代码也可以存储在同一个计算机可读介质中,本公开的实施例对此不作限制。
例如,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如本公开任一个实施例提供的视频数据处理方法10。
例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。例如,该可读存储介质也可以为图19中的存储器920,相关描述可以参考前述内容,此处不再赘述。
在本公开中,术语“多个”指两个或两个以上,除非另有明确的限定。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (26)
1.一种视频数据处理方法,包括:
对于视频的当前视频块,确定使用第一帧间预测模式进行编解码,
基于所述确定,执行所述当前视频块与所述视频的比特流之间的转换,
其中,在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
2.根据权利要求1所述的方法,其中,对于所述视频的当前视频帧,从所述第一显示模式定义的视频展开起始位置沿着展开方向的第一显示区域作为所述基础区域。
3.根据权利要求2所述的方法,其中,响应于所述当前视频块位于所述第一显示区域内,所述当前视频块的运动矢量在第一运动矢量预测范围内。
4.根据权利要求3所述的方法,其中,所述第一运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界来确定。
5.根据权利要求3所述的方法,其中,所述当前视频帧包括所述第一显示区域和沿着所述展开方向依次相邻布置的至少一个显示子区域,并且所述展开方向为从左到右,
响应于所述当前视频块位于所述当前视频帧中的所述第一显示区域右侧的第一显示子区域内,所述当前视频块的运动矢量在第二运动矢量预测范围内。
6.根据权利要求5所述的方法,其中,所述第二运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界、所述第一显示子区域的宽度来确定。
7.根据权利要求5所述的方法,响应于所述当前视频块位于所述第一显示区域右侧的第k个第一显示子区域内并且k=1,所述第二运动矢量预测范围等于所述第一运动矢量预测范围。
8.根据权利要求5所述的方法,响应于所述当前视频块位于所述第一显示区域右侧的第k个第一显示子区域内并且k为大于1的整数,所述第一运动矢量预测范围的第一右侧边界与所述第二运动矢量预测范围的第二右侧边界不同。
9.根据权利要求3所述的方法,其中,所述当前视频帧包括所述第一显示区域和沿着所述展开方向依次相邻布置的至少一个显示子区域,并且所述展开方向为从上到下,
响应于所述当前视频块位于所述第一显示区域下方的第二显示子区域内,所述当前视频块的运动矢量在第三运动矢量预测范围内。
10.根据权利要求9所述的方法,其中,所述第三运动矢量预测范围基于所述当前视频块的位置、运动矢量预测精度、所述第一显示区域的边界、所述第二显示子区域的高度来确定。
11.根据权利要求9所述的方法,其中,响应于所述当前视频块位于所述第一显示区域下方的第m个第二显示子区域内并且m=1,所述第三运动矢量预测范围等于所述第一运动矢量预测范围。
12.根据权利要求9所述的方法,响应于所述当前视频块位于所述第一显示区域下方的第m个第二显示子区域内并且m为大于1的整数,所述第一运动矢量预测范围的第一下方边界与所述第三运动矢量预测范围的第三下方边界不同。
13.根据权利要求2所述的方法,其中,响应于所述当前视频块位于所述基础区域外,所述当前视频块的运动矢量预测候选列表中的时域候选运动矢量预测值基于空域候选运动矢量预测值计算。
14.根据权利要求2所述的方法,其中,响应于所述当前视频块位于所述基础区域内,所述当前视频块使用的所有参考像素在所述基础区域内。
15.根据权利要求1-14中任一项所述的方法,其中,所述第一帧间预测模式包括Merge预测模式、高级运动矢量预测AMVP模式、带运动矢量差的Merge模式、双向加权预测模式或者仿射预测模式。
16.一种视频数据处理方法,包括:
接收视频的比特流;
确定所述视频的当前视频块使用第一帧间预测模式进行编解码,
基于所述确定,对所述比特流进行解码,
其中,在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
17.根据权利要求16所述的方法,其中,对所述比特流进行解码,包括:
确定所述视频的当前视频帧的待解码区域,所述待解码区域至少包括所述基础区域对应的第一显示区域,
基于所述待解码区域,对所述比特流进行解码。
18.根据权利要求17所述的方法,其中,确定所述待解码区域,包括:
基于所述当前视频帧待显示的像素数量和编码单元数量、所述第一显示区域的编码单元数量、前一视频帧的已显示的像素数量和所述前一视频帧的已解码区域的编码单元数量中的至少一个确定所述待解码区域。
19.根据权利要求18所述的方法,其中,确定所述待解码区域,包括:
响应于所述当前视频帧待显示的编码单元数量大于所述前一视频帧的已解码区域的编码单元数量,或者
响应于所述当前视频帧待显示的编码单元数量等于前一视频帧的已解码区域的编码单元数量,并且所述当前视频帧待显示的像素数量大于所述前一视频帧的已显示的像素数量,
确定所述待解码区域包括所述前一视频帧的已解码区域和一个新的显示子区域。
20.根据权利要求18所述的方法,其中,确定所述待解码区域,包括:
响应于所述当前视频帧待显示的编码单元数量大于所述第一显示区域的编码单元数量,并且所述当前视频帧待显示的编码单元数量小于前一视频帧的已解码区域的编码单元数量,或者
响应于所述当前视频帧待显示的编码单元数量大于所述第一显示区域的编码单元数量,所述当前视频帧待显示的编码单元数量等于所述前一视频帧的已解码区域的编码单元数量,并且所述当前视频帧待显示的像素数量不大于所述前一视频帧的已显示的像素数量,
确定所述当前视频帧的待解码区域包括所述当前视频帧待显示的区域。
21.一种视频数据处理装置,包括:
确定模块,被配置为对于所述视频的当前视频块,确定使用第一帧间预测模式进行编解码,
执行模块,被配置为基于所述确定,执行所述当前视频块与所述视频的比特流之间的转换,
其中,在所述第一帧间预测模式中,所述当前视频块的运动矢量的推导基于所述视频中的与第一显示模式对应的基础区域。
22.一种显示装置,包括:视频数据处理装置和滑卷屏,
其中,所述视频数据处理装置被配置为根据权利要求1-20中任一项所述的方法对接收到的比特流进行解码,并将解码后的像素值发送至所述滑卷屏以供显示。
23.根据权利要求22所述的显示装置,其中,响应于所述滑卷屏在工作中包括显示区域和非显示区域,所述视频数据处理装置基于当前时刻和前一帧时刻的所述显示区域的尺寸对所述比特流进行解码。
24.根据权利要求22所述的显示装置,还包括卷曲状态判断装置,其中,所述卷曲状态判断装置配置为检测所述滑卷屏的显示区域的尺寸,并将所述显示区域的尺寸发送至所述视频数据处理装置,以使得所述视频数据处理装置基于当前时刻和前一帧时刻的所述显示区域的尺寸对所述比特流进行解码。
25.一种视频数据处理装置,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行权利要求1-20中任一项所述的视频数据处理方法的指令。
26.一种计算机可读存储介质,其中存储有计算机指令,该指令被处理器执行时实现权利要求1-20中任一项所述视频数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493517.XA CN118101964A (zh) | 2022-11-25 | 2022-11-25 | 视频数据处理方法及装置、显示装置和存储介质 |
PCT/CN2023/133303 WO2024109816A1 (zh) | 2022-11-25 | 2023-11-22 | 视频数据处理方法及装置、显示装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211493517.XA CN118101964A (zh) | 2022-11-25 | 2022-11-25 | 视频数据处理方法及装置、显示装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101964A true CN118101964A (zh) | 2024-05-28 |
Family
ID=91140903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211493517.XA Pending CN118101964A (zh) | 2022-11-25 | 2022-11-25 | 视频数据处理方法及装置、显示装置和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118101964A (zh) |
WO (1) | WO2024109816A1 (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2015034061A1 (ja) * | 2013-09-06 | 2017-03-02 | 三菱電機株式会社 | 動画像符号化装置、動画像トランスコード装置、動画像符号化方法、動画像トランスコード方法及び動画像ストリーム伝送システム |
KR102500060B1 (ko) * | 2015-11-18 | 2023-02-16 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN105681805B (zh) * | 2016-01-19 | 2019-05-21 | 北京大学深圳研究生院 | 视频编码、解码方法及其帧间预测方法和装置 |
CN108766235B (zh) * | 2018-03-31 | 2021-04-23 | 上海创功通讯技术有限公司 | 卷轴式柔性屏、显示控制方法及存储介质 |
US10958928B2 (en) * | 2018-04-10 | 2021-03-23 | Qualcomm Incorporated | Decoder-side motion vector derivation for video coding |
CN108735100A (zh) * | 2018-05-21 | 2018-11-02 | 上海创功通讯技术有限公司 | 一种柔性显示装置及其控制方法、控制装置 |
WO2021086153A1 (ko) * | 2019-10-31 | 2021-05-06 | 삼성전자 주식회사 | 어파인 모델에 따른 인터 예측을 수행하는 비디오 복호화 방법 및 그 장치, 비디오 부호화 방법 및 그 장치 |
EP4131959A4 (en) * | 2020-03-26 | 2024-03-06 | LG Electronics, Inc. | METHOD AND APPARATUS FOR IMAGE ENCODING/DECODING BASED ON WRAPPING MOTION COMPENSATION, AND RECORDING MEDIUM STORING BIT STREAM |
CN115699755A (zh) * | 2020-03-26 | 2023-02-03 | Lg电子株式会社 | 基于卷绕运动补偿的图像编码/解码方法和装置及存储比特流的记录介质 |
CN111708506B (zh) * | 2020-06-09 | 2022-11-22 | 上海卷视科技有限公司 | 卷轴式显示屏的显示方法、***、电子设备及存储介质 |
CN114168051A (zh) * | 2021-12-03 | 2022-03-11 | 深圳传音控股股份有限公司 | 显示方法、智能终端及存储介质 |
-
2022
- 2022-11-25 CN CN202211493517.XA patent/CN118101964A/zh active Pending
-
2023
- 2023-11-22 WO PCT/CN2023/133303 patent/WO2024109816A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024109816A1 (zh) | 2024-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113039787B (zh) | 解码器侧运动矢量细化 | |
TWI819100B (zh) | 用於仿射模式之以歷史為基礎之運動向量預測 | |
JP7239697B2 (ja) | エンコーダ、デコーダ、インター予測のための対応する方法 | |
US11140408B2 (en) | Affine motion prediction | |
JP7507166B2 (ja) | デコーダ側動きベクトル改良に対する制約 | |
JP7504925B2 (ja) | ビデオコーディングのための組み合わされたインターおよびイントラ予測モード | |
EP3672249A1 (en) | Inter frame prediction method and device and codec for video images | |
CN112119636A (zh) | 视频编码中高精度运动矢量的存储 | |
TW202415068A (zh) | 視訊寫碼中之三角合併模式索引之發信 | |
JP2022537064A (ja) | エンコーダ、デコーダ、および対応する方法 | |
JP2017511620A (ja) | オーバーラップエリア内の再構成されたサンプル値のブロックベクトル予測及び推定におけるイノベーション | |
TW202025767A (zh) | 具有適應性方向性資訊集合之最終動作向量表示 | |
TW202101993A (zh) | 用於視訊寫碼之可切換內插濾波 | |
JP2022521809A (ja) | ビデオコーディングにおける係数領域ブロック差分パルスコード変調 | |
KR102621958B1 (ko) | 후보 모션 벡터 리스트 획득 방법, 장치, 인코더 및 디코더 | |
JP7346601B2 (ja) | Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置 | |
TW202041003A (zh) | 用於視訊資料之框間-框內預測模式 | |
KR20210058856A (ko) | 저장된 파라미터들을 사용하는 비디오 인코딩 및 디코딩을 위한 로컬 조명 보상 | |
CN111526362B (zh) | 帧间预测方法和装置 | |
US12010293B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
JP2023156315A (ja) | インター予測方法および装置 | |
CN115834904A (zh) | 一种帧间预测的方法及装置 | |
WO2024109816A1 (zh) | 视频数据处理方法及装置、显示装置和存储介质 | |
TW202139716A (zh) | 在視訊解碼中共享的信號傳遞約束和序列參數集 | |
WO2024109790A1 (zh) | 视频数据处理方法及装置、显示装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |