CN113556539B - 对视频数据进行解码的方法、计算设备和介质 - Google Patents

对视频数据进行解码的方法、计算设备和介质 Download PDF

Info

Publication number
CN113556539B
CN113556539B CN202110773749.XA CN202110773749A CN113556539B CN 113556539 B CN113556539 B CN 113556539B CN 202110773749 A CN202110773749 A CN 202110773749A CN 113556539 B CN113556539 B CN 113556539B
Authority
CN
China
Prior art keywords
motion vector
current
candidate list
hmvp table
video
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.)
Active
Application number
CN202110773749.XA
Other languages
English (en)
Other versions
CN113556539A (zh
Inventor
王祥林
陈漪纹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN113556539A publication Critical patent/CN113556539A/zh
Application granted granted Critical
Publication of CN113556539B publication Critical patent/CN113556539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种计算设备执行对视频数据进行解码的方法。存储多个基于历史的运动向量预测值的数据缓冲器用于对CTU行进行编码,并且解码过程在对当前CTU行中的第一个CU进行解码之前重置缓冲器。对于CTU行中的当前CU,通过利用相邻编码单元的运动向量的空间和时间相关性以及缓冲器中的基于历史的运动向量预测值,构造运动向量候选列表。最后,从运动向量候选列表中选择一个运动向量预测值,以对当前CU进行解码,并且基于所选的运动向量预测值来更新缓冲器。

Description

对视频数据进行解码的方法、计算设备和介质
本申请是中国专利申请第201980047626.9号的分案申请,该中国专利申请为2019年7月16日提交的国际专利申请PCT/US2019/041923的中国国家阶段申请,该国际专利申请要求2018年7月18日提交的美国专利申请第62/700,106号的优先权。
技术领域
本申请总体上涉及视频数据编码和解码,并且具体地,涉及使用基于历史的运动向量预测进行视频解码的方法和系统。
背景技术
如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能手机、视频电话会议设备、视频流式传输设备等各种电子设备都支持数字视频。电子设备通过实施如由MPEG-4、ITU-T H.263、ITU-TH.264/MPEG-4第10部分、高级视频编码(AVC)、高效视频编码(HEVC)和通用视频编码(VVC)标准定义的视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。视频压缩典型地包括执行空间(帧内)预测和/或时间(帧间)预测以减少或移除视频数据中固有的冗余。对于基于块的视频编码,将视频帧分区为一个或多个条带(slice),每个条带具有多个视频块,所述视频块也可以被称为编码树单元(CTU)。每个CTU可以包含一个编码单元(CU)或递归地分割成较小的CU,直到达到预设的最小CU大小。每个CU(也称为叶子CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。视频帧的帧内编码(I)条带中的视频块使用相对于该同一视频帧内的相邻块中的参考样点的空间预测来进行编码。视频帧的帧间编码(P或B)条带中的视频块可以使用相对于该同一视频帧内的相邻块中的参考样点的空间预测或相对于其他先前和/或未来参考视频帧中的参考样点的时间预测。
基于先前已被编码的参考块(例如,相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动向量、以及残差块来对帧间编码块进行编码。确定运动向量的过程典型地被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而产生残差变换系数,然后可以对所述残差变换系数进行量化。可以扫描最初布置为二维阵列的经量化的变换系数,以产生变换系数的一维向量,并且然后将其熵编码为视频比特流,以实现更多的压缩。
然后,将编码视频比特流保存在计算机可读存储介质(例如,闪速存储器)中,以被具有数字视频能力的另一个电子设备访问,或者直接以有线或无线方式传输到电子设备。然后,电子设备通过例如解析编码视频比特流以从比特流获得语义(syntax)元素并且至少部分地基于从比特流获得的语义元素将数字视频数据从编码视频比特流重构为其原始格式来执行视频解压缩(其是与上文描述的视频压缩相反的过程),并且在电子设备的显示器上渲染重构的数字视频数据。
随着数字视频质量从高清到4K×2K或甚至8K×4K,要编码/解码的视频数据量呈指数增长。在如何保持解码视频数据的图像质量的同时更高效地对视频数据进行编码/解码方面,一直是挑战。
发明内容
本申请描述了与视频数据编码和解码有关的实施方式,并且更具体地,与在使用基于历史的运动向量预测进行视频编码和解码期间并行处理视频数据的系统和方法有关的实施方式。
根据本申请的第一方面,一种对视频数据进行解码的方法包括:获取视频比特流,该视频比特流包括与多个编码图片相关联的数据,每个图片包括多个编码树单元(CTU)行,并且每个CTU包括一个或多个编码单元(CU);在对被解码的当前图片的当前CTU行中的第一个CU进行解码之前,重置基于历史的运动向量预测值(HMVP)表;在对当前CTU行进行解码时:在HMVP表中维持多个运动向量预测值,HMVP表中的每个运动向量预测值用于对当前CTU行中的至少一个CU进行解码;对于当前CTU行中待解码的当前CU:从视频比特流中提取预测模式;根据预测模式并且至少部分地基于HMVP表中的多个运动向量预测值来构造运动向量候选列表;从运动向量候选列表中选择运动向量预测值;至少部分地基于预测模式和所选运动向量预测值来确定运动向量,以对当前CU进行解码;以及基于所确定的运动向量来更新HMVP表。
根据本申请的第二方面,一种计算设备包括一个或多个处理器、存储器以及存储在所述存储器中的多个程序。程序在由一个或多个处理器执行时,使计算设备执行如上文描述的操作。
根据本申请的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序。程序在由一个或多个处理器执行时,使计算设备执行如上文描述的操作。
根据本申请的第四方面,一种存储在计算机可读存储介质上的计算机程序,包括用于由具有一个或多个处理器的计算设备执行的多个程序。该多个程序当由一个或多个处理器执行时,使计算设备执行如上文描述的操作。
附图说明
被包括在内以提供对实施方式的进一步理解并且并入本文并构成说明书的一部分的附图图示了所描述的实施方式,并且与说明书一起用于解释基本原理。相似的附图标记指代对应的部分。
图1是图示了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是图示了根据本公开的一些实施方式的示例性视频编码器的框图。
图3是图示了根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4D是图示了根据本公开的一些实施方式的如何将帧递归地四叉树分区成具有不同大小的多个视频块的框图。
图5A是图示了根据本公开的一些实施方式的待编码的当前CU的在空间上相邻和在时间上并置的块位置的框图。
图5B是图示了根据本公开的一些实施方式的使用波前并行处理对图片的多个CTU行进行多线程编码的框图。
图6是图示了根据本公开的一些实施方式的示例性过程的流程图,视频编码器通过所述示例性过程实施构造运动向量预测值候选列表的技术。
具体实施方式
现在将详细参考具体实施方式,附图中图示了这些实施方式的示例。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文提出的主题。但是对于本领域的普通技术人员将清楚明白的是,在不脱离权利要求的范围的情况下,可以使用各种替代性方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域的普通技术人员将清楚明白的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实施。
图1是图示了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1所示,系统10包括源设备12,源设备12生成并且编码待由目的地设备14在稍后时间解码的视频数据。源设备12和目的地设备14可以包括多种电子设备中的任何一种,所述多种电子设备包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流式传输设备等。在一些实施方式中,源设备12和目的地设备14配备有无线通信能力。
在一些实施方式中,目的地设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括用于使源设备12能够实时地将编码视频数据直接传输到目的地设备14的通信介质。编码视频数据可以根据如无线通信协议等通信标准来调制并传输到目的地设备14。通信介质可以包括任何无线或有线通信介质,如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(如局域网、广域网或全球网(如互联网))的一部分。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其他装置。
在一些其他实施方式中,编码视频数据可以从输出接口22传输到存储设备32。随后,存储设备32中的编码视频数据可以由目的地设备14经由输入接口28访问。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任一种,如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性存储器或非易失性存储器或用于存储编码视频数据的任何其他适合的数字存储介质。在另外的示例中,存储设备32可以对应于可以保持由源设备12生成的编码视频数据的文件服务器或另一个中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问所存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据传输到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接访问编码视频数据,所述标准数据连接包括适于访问存储在文件服务器上的编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。从存储设备32传输编码视频数据可以是流式传输、下载传输或两者的组合。
如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括如视频捕获设备等源,例如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供方接收视频的视频流界面和/或用于生成计算机图形数据作为源视频的计算机图形系统或这些源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目的地设备14可以形成相机电话或视频电话。然而,本申请中描述的实施方式通常可以适用于视频编码并且可以应用于无线和/或有线应用。
捕获的、预先捕获的或计算机生成的视频可以由视频编码器20进行编码。编码视频数据可以经由源设备12的输出接口22直接传输到目的地设备14。编码视频数据也可以(或替代性地)存储到存储设备32上,以供目的地设备14或其他设备以后访问,以进行解码和/或回放。输出接口22可以进一步包括调制解调器和/或发射器。
目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或提供在存储设备32上的编码视频数据可以包括由视频编码器20生成的各种语义元素,以供视频解码器30用于解码视频数据。这些语义元素可以被包括于在通信介质上传输的、存储在存储介质上或存储在文件服务器中的编码视频数据内。
在一些实施方式中,目的地设备14可以包括显示设备34,显示设备34可以是集成显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可以包括各种显示设备中的任何一种,如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
视频编码器20和视频解码器30可以根据专有或行业标准(如VVC、HEVC、MPEG-4第10部分、高级视频编码(AVC)或这些标准的扩展)进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常设想到了,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行编码。类似地,通常还设想到了,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行解码。
视频编码器20和视频解码器30各自可以实施为各种适合的编码器电路中的任何一种,如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实施时,电子设备可以将用于软件的指令存储在合适的非暂态计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,一个或多个编码器或解码器中的任一个可以集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
图2是图示了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测来减少或移除给定视频帧或图片内的视频数据的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的相邻视频帧或图片内的视频数据的时间冗余。
如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重构的逆量化单元58、逆变换处理单元60和加法器62。去块滤波器(未示出)可以位于加法器62与DPB 64之间,以对块边界进行滤波,以从重构的视频中移除块效应伪像。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可以采用固定或可编程硬件单元的形式,或可以在所图示的固定或可编程硬件单元中的一个或多个中进行划分。
视频数据存储器40可以存储待由视频编码器20的部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。DPB 64是存储参考视频数据以用于由视频编码器20对视频数据进行编码(例如,在帧内预测编码模式或帧间预测编码模式下)的缓冲器。视频数据存储器40和DPB 64可以由多种存储器设备中的任何一种形成。在各个示例中,视频数据存储器40可以与视频编码器20的其他部件一起在片上,或者相对于那些部件在片外。
如图2所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据分区为视频块。此分区还可以包括根据预设的分割结构(如与视频数据相关联的四叉树结构)将视频帧分区为条带、图块(tile)或其他更大的编码单元(CU)。视频帧可以被划分成多个视频块(或称为图块的视频块集)。预测处理单元41可以基于误差结果(例如,编码率和失真水平)为当前视频块选择多个可能的预测编码模式之一,如多个帧内预测编码模式之一或多个帧间预测编码模式之一。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重构编码块以随后用作参考帧的一部分。预测处理单元41还将如运动向量、帧内模式指示符、分区信息和其他这种语义信息等语义元素提供给熵编码单元56。
为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与待编码的当前块相同的帧中的一个或多个相邻块执行对当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。
在一些实施方式中,运动估计单元42根据视频帧序列内的预定型式通过生成运动向量来确定当前视频帧的帧间预测模式,所述运动向量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动向量的过程,所述过程估计视频块的运动。运动向量例如可以指示当前视频帧或图片内的视频块的PU相对于参考帧内的、相对于当前帧内正被编码的当前块(或其他编码单元)的预测块(或其他编码单元)的位移。预定型式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定运动向量以进行帧间预测的方式类似的方式,来确定用于进行帧内BC编码的向量,例如,块向量,或者可以利用运动估计单元42来确定块向量。
预测块是在像素差方面被认为与待编码的视频块的PU紧密匹配的参考帧的块,所述像素差可以由绝对差和(SAD)、平方差和(SSD)或其他差值度量来确定。在一些实施方式中,视频编码器20可以计算存储在DPB 64中的参考帧的亚整数像素位置的值。例如,视频编码器20可以插入参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且以分数像素精度输出运动向量。
运动估计单元42通过将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中的视频块的PU的运动向量,所述列表中的每一个列表标识存储在DPB 64中的一个或多个参考帧。运动估计单元42将经计算的运动向量发送到运动补偿单元44,并且然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动向量取得或生成预测块。在接收当前视频块的PU的运动向量后,运动补偿单元44可以在参考帧列表之一中定位运动向量所指向的预测块,从DPB 64取回预测块并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成具有像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语义元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语义元素可以包括例如定义用于标识预测块的运动向量的语义元素、指示预测模式的任何标志或本文描述的任何其他语义信息。注意,运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而分开图示。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式来生成向量并且取得预测块,但是其中预测块与正被编码的当前块处于同一帧中,并且其中向量被称为块向量而不是运动向量。具体地,帧内BC单元48可以确定帧内预测模式以用于对当前块进行编码。在一些示例中,帧内BC单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内BC单元48可以在各种经测试帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用针对各种经测试帧内预测模式的率失真分析来计算率失真值,并且在经测试模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当的帧内预测模式。率失真分析通常确定编码块与原始的未编码块(被编码以产生编码块)之间的失真(或误差)量以及用于产生编码块的比特率(即,比特数)。帧内BC单元48可以依据各个编码块的失真和速率来计算比值,以确定哪个帧内预测模式展现出块的最佳率失真值。
在其他示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实施方式执行用于帧内BC预测的这些功能。在任一种情况下,对于帧内块复制,预测块可以是在像素差方面被视为与待编码的块紧密匹配的块,所述像素差可以由绝对差和(SAD)、平方差和(SSD)或其他差度量确定,并且预测块的标识可以包括计算亚整数像素位置的值。
无论预测块是根据帧内预测来自同一帧还是根据帧间预测来自不同帧,视频编码器20都可以通过从正被编码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值。形成残差视频块的像素差值可以包括亮度分量差和色度分量差。
如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测、或者由帧内BC单元48执行的帧内块复制预测的替代方案。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可以从经测试帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以将指示块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示比特流中的所选帧内预测模式的信息进行编码。
在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个变换单元(TU)中,并且被提供给变换处理单元52。变换处理单元52使用如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括经量化的变换系数的矩阵的扫描。替代性地,熵编码单元56可以执行该扫描。
量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语义的上下文自适应二进制算术编码(SBAC)、概率区间分区熵(PIPE)编码或其他熵编码方法或技术将经量化的变换系数熵编码为视频比特流。然后,可以将编码比特流传输到视频解码器30,或将其存档在存储设备32中,以供以后传输到视频解码器30或由视频解码器30取回。熵编码单元56还可以对正被编码的当前视频帧的运动向量和其他语义元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重构残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可以从DPB64中存储的帧的一个或多个参考块中生成经运动补偿的预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算在运动估计中使用的亚整数像素值。
加法器62将重构的残差块添加到由运动补偿单元44产生的经运动补偿的预测块,以产生参考块用于存储在DPB 64中。参考块然后可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一个视频块进行帧间预测。
图3是图示了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行通常与上文结合图2相对于视频编码器20所描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收到的运动向量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收到的帧内预测模式指示符生成预测数据。
在一些示例中,可以给视频解码器30的单元分配任务以执行本申请的实施方式。同样,在一些示例中,本公开的实施方式可以在视频解码器30的一个或多个单元之间进行划分。例如,帧内BC单元85可以单独或与视频解码器30的其他单元(如运动补偿单元82、帧内预测单元84和熵解码单元80)组合执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其他部件(如运动补偿单元82)执行。
视频数据存储器79可以存储待由视频解码器30的其他部件解码的视频数据,如编码视频比特流。例如,可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、从本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据,以用于由视频解码器30对视频数据进行解码(例如,在帧内预测编码模式或帧间预测编码模式下)。视频数据存储器79和DPB 92可以由多种存储器设备中的任一种形成,如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同的部件。但是对于本领域技术人员将清楚明白的是,视频数据存储器79和DPB92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他部件一起在片上,或者相对于那些部件在片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可以在视频帧水平和/或视频块水平接收语义元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成经量化的系数、运动向量或帧内预测模式指示符和其他语义元素。熵解码单元80然后将运动向量和其他语义元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来生成当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动向量和其他语义元素产生当前视频帧的视频块的一个或多个预测块。每个预测块可以从参考帧列表之一内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构造技术构造参考帧列表:列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收到的块向量和其他语义元素,为当前视频块产生预测块。预测块可以处于与由视频编码器20定义的当前视频块相同的图片的重构的区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动向量和其他语义元素来确定当前视频帧的视频块的预测信息,并且然后使用预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语义元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、帧的参考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动向量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可以使用接收到的语义元素中的一些(例如,标志)来确定当前视频块是使用以下各项预测的:帧内BC模式、关于帧的哪些视频块处于重构的区域内并且应存储在DPB 92中的构造信息、帧的每个帧内BC预测视频块的块向量、帧的每个帧内BC预测视频块的帧内BC预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器来执行内插以计算参考块的亚整数像素的内插值。在这种情况下,运动补偿单元82可以从接收到的语义元素确定由视频编码器20使用的内插滤波器并且使用内插滤波器来产生预测块。
逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的经量化的变换系数进行逆量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重构残差块。
在运动补偿单元82或帧内BC单元85基于向量和其他语义元素生成当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块以及由运动补偿单元82和帧内BC单元85生成的对应预测块求和来重构当前视频块的解码视频块。环路滤波器(未示出)可以定位于加法器90与DPB 92之间,以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于对接下来的视频块进行后续运动补偿的参考帧。DPB92或与DPB 92分开的存储器设备还可以存储解码视频以供稍后呈现在如图1的显示设备34等显示设备上。
在典型的视频编码过程中,视频序列典型地包括帧或图片的有序集合。每个帧可以包括三个样点阵列,分别表示为SL、SCb和SCr。SL是亮度样点的二维阵列。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括亮度样点的一个二维阵列。
如图4A所示,视频编码器20(或更具体地,分区单元45)通过首先将帧分区为一组编码树单元(CTU)来生成帧的编码表示。视频帧可以包括从左到右以及从上到下的光栅扫描顺序连续排序的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传输CTU的宽度和高度,使得视频序列中的所有CTU具有相同的大小,即128×128、64×64、32×32和16×16中的一个。但是应当注意,本申请不必限于特定的大小。如图4B所示,每个CTU可以包括亮度样点的一个编码树块(CTB)、色度样点的两个对应的编码树块以及用于对编码树块的样点进行编码的语义元素。语义元素描述编码的像素块的不同类型的单元的属性以及如何可以在视频解码器30处重构视频序列,所述语义元素包括帧间预测或帧内预测、帧内预测模式、运动向量和其他参数。在单色图片或具有三个单独的色彩平面的图片中,CTU可以包括单个编码树块和用于对编码树块的样点进行编码的语义元素。编码树块可以是N×N样点块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行如二叉树分区、四叉树分区或两者的组合等树分区,并且将CTU划分为较小的编码单元(CU)。如图4C描绘的,首先将64×64CTU 400划分为四个较小的CU,每个CU的块大小为32×32。在四个较小的CU中,CU 410和CU 420按块大小各自划分为四个16×16的CU。两个16×16CU 430和440按块大小各自进一步划分为四个8×8的CU。图4D描绘了四叉树数据结构,该四叉树数据结构图示出如图4C中所描绘的CTU 400的分区过程的最终结果,四叉树的每个叶子节点对应于相应大小在32×32至8×8范围内的一个CU。类似于图4B描绘的CTU,每个CU可以包括亮度样点的编码块(CB)和相同大小的帧的色度样点的两个对应的编码块,以及用于对编码块的样点进行编码的语义元素。在单色图片或具有三个单独的色彩平面的图片中,CU可以包括单个编码块和用于对编码块的样点进行编码的语义结构。
在一些实施方式中,视频编码器20可以进一步将CU的编码块分区为一个或多个M×N预测块(PB)。预测块是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样点块。CU的预测单元(PU)可以包括亮度样点的预测块、色度样点的两个对应的预测块以及用于对预测块进行预测的语义元素。在单色图片或具有三个单独的色彩平面的图片中,PU可以包括单个预测块和用于对预测块进行预测的语义结构。视频编码器20可以生成CU的每个PU的亮度、Cb及Cr预测块的预测亮度、Cb及Cr块。
视频编码器20可使用帧内预测或帧间预测来生成PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与该PU相关联的帧的解码样点来生成该PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除与该PU相关联的帧之外的一个或多个帧的解码样点来生成该PU的预测块。
在视频编码器20生成CU的一个或多个PU的预测亮度、Cb和Cr块之后,视频编码器20可以通过从该CU的原始亮度编码块中减去其预测亮度块来生成该CU的亮度残差块,使得该CU的亮度残差块中的每个样点指示该CU的预测亮度块之一中的亮度样点与该CU的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可以分别生成该CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样点指示在该CU的预测Cb块之一中的Cb样点与该CU的原始Cb编码块中的对应样点之间的差,并且该CU的Cr残差块中的每个样点可以指示该CU的预测Cr块之一中的Cr样点与该CU的原始Cr编码块中的对应样点之间的差。
此外,如图4C所图示的,视频编码器20可使用四叉树分区来将CU的亮度、Cb和Cr残差块分解为一个或多个亮度、Cb和Cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样点块。CU的变换单元(TU)可以包括亮度样点的变换块、色度样点的两个对应的变换块以及用于对变换块样点进行变换的语义元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独的色彩平面的图片中,TU可以包括单个变换块和用于对变换块的样点进行变换的语义结构。
视频编码器20可以将一个或多个变换应用于TU的亮度变换块以生成该TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于TU的Cb变换块以生成该TU的Cb系数块。视频编码器20可以将一个或多个变换应用于TU的Cr变换块以生成该TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指将变换系数量化以可能地减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示经量化的变换系数的语义元素进行熵编码。例如,视频编码器20可以对指示经量化的变换系数的语义元素执行上下文自适应二进制算术编码(CABAC)。最终,视频编码器20可以输出包括形成编码帧和相关联数据的表示的比特序列的比特流,所述比特流被保存在存储设备32中或被传输到目的地设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流中获得语义元素。视频解码器30可以至少部分地基于从比特流获得的语义元素来重构视频数据的帧。重构视频数据的过程通常与由视频编码器20执行的编码过程是相反的。例如,视频解码器30可以对与当前CU的TU相关联的系数块执行逆变换以重构与该当前CU的TU相关联的残差块。视频解码器30还通过将当前CU的PU的预测块的样点加到当前CU的TU的变换块的对应样点来重构当前CU的编码块。在重建一帧的每个CU的编码块之后,视频解码器30可以重构该帧。
如上所述,视频编码主要使用两种模式(即,帧内预测(intra-frame prediction)(或intra-prediction)和帧间预测(inter-frame prediction)(或inter-prediction))来实现视频压缩。应注意的是,IBC可以被认为是帧内预测或第三模式。在两种模式之间,由于使用运动向量用于从参考视频块中预测当前视频块,因此帧间预测比帧内预测对编码效率的贡献更大。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块大小,表示当前帧的运动向量所需的数据量也大幅增加。克服这个挑战的一种方式是受益于以下事实:不仅空间域和时间域中的一组相邻CU具有用于预测目的的类似视频数据,而且这些相邻CU之间的运动向量也类似。因此,有可能通过探索CU的空间和时间相关性,将空间上相邻的CU和/或时间上并置的CU的运动信息用作当前CU的运动信息(例如,运动向量)的近似值,所述近似值也被称为当前CU的“运动向量预测值”(MVP)。
代替将由如上文结合图2描述的运动估计单元42确定的当前CU的实际运动向量编码到视频比特流中,从当前CU的实际运动向量中减去当前CU的运动向量预测值,以产生当前CU的运动向量差(MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动向量编码到视频比特流中,并且可以显著减少用于表示视频比特流中的运动信息的数据量。
像在编码块的帧间预测期间在参考帧中选择预测块的过程一样,需要由视频编码器20和视频解码器30两者采用一组规则以用于使用与当前CU的在空间上相邻的CU和/或在时间上并置的CU相关联的那些潜在候选运动向量来构造该当前CU的运动向量候选列表,并且然后从运动向量候选列表中选择一个成员作为当前CU的运动向量预测值。通过这样做,不需要在视频编码器20与视频解码器30之间传输运动向量候选列表本身,并且运动向量候选列表内的所选运动向量预测值的索引足以使视频编码器20和视频解码器30使用运动向量候选列表内相同的运动向量预测值来对当前CU进行编码和解码。
在一些实施方式中,每个帧间预测CU具有用于构造运动向量候选列表的三种运动向量预测模式,包括帧间(其也称为“高级运动向量预测”(AMVP))、跳过和合并。在每种模式下,可以根据下文描述的算法将一个或多个运动向量候选项添加到运动向量候选列表中。最终,候选列表中的其中一项用作帧间预测CU的最佳运动向量预测值,该最佳运动向量预测值将由视频编码器20编码到视频比特流中或由视频解码器30从视频比特流中解码。为了从候选列表中找到最佳运动向量预测值,引入了运动向量竞争(MVC)方案,以从运动向量的给定候选集(即,运动向量候选列表)中选择运动向量,所述运动向量候选集包括空间和时间运动向量候选项。
除了从空间上相邻或时间上并置的CU推导运动向量预测值候选项之外,运动向量预测值候选项还可以从所谓“基于历史的运动向量预测”(HMVP)表中推导得到。HMVP表容纳预设数量的运动向量预测值,每个运动向量预测值已用于对同一CTU行(或有时为同一CTU)的特定CU进行编码/解码。由于这些CU在空间/时间上的接近性,很有可能HMVP表中的运动向量预测值之一可以重新用于对同一CTU行内的不同CU进行编码/解码。因此,通过在构造运动向量候选列表的过程中包括HMVP表,有可能实现更高的编码效率。
在一些实施方式中,HMVP表具有固定长度(例如,5),并且以准先进先出(FIFO)的方式进行管理。例如,当对CU的一个帧间编码块进行解码时,为该CU重构运动向量。利用重构的运动向量即时更新HMVP表,因为这种运动向量可以是后续CU的运动向量预测值。当更新HMVP表时,存在两种情况:(i)重构的运动向量不同于HMVP表中的其他现有运动向量,或者(ii)重构的运动向量与HMVP表中的现有运动向量之一相同。对于第一种情况,如果HMVP表未满,则将重构的运动向量作为最新的运动向量预测值添加到HMVP表中。如果HMVP表已满,则在将重构的运动向量作为最新的运动向量预测值添加之前,需要首先将HMVP表中最旧的运动向量从HMVP表中移除。换句话说,在这种情况下,HMVP表类似于FIFO缓冲器,使得位于FIFO缓冲器头部并且与另一个先前帧间编码块相关联的运动信息被移出缓冲器,使得重构的运动向量作为HMVP表中的最新成员附加到FIFO缓冲器的尾部。对于第二种情况,在将重构的运动向量作为最新的运动向量预测值添加到HMVP表之前,从HMVP表中移除HMVP表中与重构的运动向量基本上相同的现有运动向量。如果也以FIFO缓冲器的形式维持HMVP表,则HMVP表中该相同运动向量之后的各运动向量预测值将向前移动一个元素,以占据被移除的运动向量所留下的空间,并且然后重构的运动向量作为HMVP表中的最新成员附加到FIFO缓冲器的尾部。
可以将HMVP表中的运动向量添加到如AMVP、合并、跳过等不同预测模式下的运动向量候选列表中。已经发现,存储在HMVP表中的甚至不与当前块相邻的先前帧间编码块的运动信息也可以用于更高效的运动向量预测。
在针对当前CU的给定的运动向量候选集内选择一个MVP候选项之后,视频编码器20可以为对应的MVP候选项生成一个或多个语义元素并且将所述语义元素编码到视频比特流中,使得视频解码器30可以使用语义元素从视频比特流中取回MVP候选项。根据用于构造运动向量候选集的具体模式,不同模式(例如,AMVP、合并、跳过等)具有不同的语义元素集。对于AMVP模式,语义元素包括帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动向量候选索引、运动向量预测残差信号等。对于跳过模式和合并模式,仅合并索引被编码到比特流中,因为当前CU从由编码合并索引所引用的相邻CU继承了其他语义元素,包括帧间预测指示符、参考索引和运动向量。在跳过编码CU的情况下,运动向量预测残差信号也被省略。
图5A是图示了根据本公开的一些实施方式的待编码/解码的当前CU的在空间上相邻和在时间上并置的块位置的框图。对于给定模式,通过首先检查与空间上左侧和上方的相邻块位置相关联的运动向量的可用性,以及与时间上并置的块位置相关联的运动向量的可用性,并且然后检查HMVP表中的运动向量来构造运动向量预测(MVP)候选列表。在构造MVP候选列表的过程期间,从候选列表中移除一些冗余的MVP候选项,并且在必要时添加零值运动向量以使候选列表具有固定的长度(注意,不同的模式可以具有不同的固定长度)。在构造MVP候选列表之后,视频编码器20可以从候选列表中选择最佳运动向量预测值,并且将指示所选候选项的对应索引编码到视频比特流中。
将图5A用作示例,并且假设候选列表的固定长度为二,可以通过在AMVP模式下按顺序执行以下步骤来构造当前CU的运动向量预测值(MVP)候选列表:
1)从空间上相邻的CU中选择MVP候选项
a)从以A0开始且以A1结束的两个左侧空间相邻CU之一中推导多达一个非缩放MVP候选项;
b)如果在先前的步骤中没有来自左侧的非缩放MVP候选项可用,则从以A0开始且以A1结束的两个左侧空间相邻CU之一中推导多达一个缩放MVP候选项;
c)从以B0开始然后B1并且以B2结束的三个上方空间相邻CU之一中推导多达一个非缩放MVP候选项;
d)如果A0和A1均不可用,或者如果A0和A1以帧内模式进行编码,则从以B0开始然后B1并且以B2结束的三个上方空间相邻CU之一中推导多达一个缩放MVP候选项;
2)如果在先前的步骤中找到两个MVP候选项,并且所述两个MVP候选项是相同的,则从MVP候选列表中移除这两个候选项之一;
3)从时间上并置的CU中选择MVP候选项
a)如果先前的步骤之后的MVP候选列表不包括两个MVP候选项,则从时间上并置的CU(例如,T0)中推导多达一个MVP候选项
4)从HMVP表中选择MVP候选项
a)如果先前的步骤之后的MVP候选列表不包括两个MVP候选项,则从HMVP表中推导多达两个基于历史的MVP;以及
5)如果先前的步骤之后的MVP候选列表不包括两个MVP候选项,则将多达两个零值MVP添加到MVP候选列表。
由于在上文构造的AMVP模式MVP候选列表中仅存在两个候选项,因此将如二进制标志等相关联语义元素编码到比特流中,以指示候选列表内的两个MVP候选项中的哪一个用于对当前CU进行解码。
在一些实施方式中,跳过或合并模式下的当前CU的MVP候选列表可以通过按顺序执行与上述步骤类似的一组步骤来构造。注意,对于跳过或合并模式,被称为“成对合并候选项”的一种特殊的合并候选项也被包括在MVP候选列表中。成对合并候选项是通过对两个先前推导的合并模式运动向量候选项的MV求平均而生成的。合并MVP候选列表的大小(例如,从1到6)在当前CU的条带头部中用信号传输。对于合并模式下的每个CU,使用截断的一元二进制化(TU)对最佳合并候选项的索引进行编码。合并索引的第一个仓(bin)利用上下文进行编码,并且其他仓使用旁路编码。
如上所述,基于历史的MVP可以在空间MVP和时间MVP之后添加到AMVP模式MVP候选列表或者合并MVP候选列表。先前帧间编码CU的运动信息存储在HMVP表中,并且用作当前CU的MVP候选项。在编码/解码过程期间维持HMVP表。每当存在非子块帧间编码CU时,将相关联运动向量信息作为新的候选项添加到HMVP表的最后条目,同时将存储在HMVP表的第一个条目中的运动向量信息从其中移除(如果HMVP表已满并且表中不存在相关联运动向量信息的相同副本的话)。替代性地,在将相关联运动向量信息添加到HMVP表的最后条目之前,从表中移除相关联运动向量信息的相同副本。
如上所述,帧内块复制(IBC)可以显著提高屏幕内容素材的编码效率。由于IBC模式被实施为块级编码模式,因此在视频编码器20处执行块匹配(BM)以找到每个CU的最佳块向量。在此,块向量用于指示从当前块到参考块的位移,所述参考块已经在当前图片内重构。IBC编码CU被视为不同于帧内预测模式或帧间预测模式的第三预测模式。
在CU级别,IBC模式可以作为IBC AMVP模式或IBC跳过/合并模式用信号传输,如下所示:
-IBC AMVP模式:CU的实际块向量与从该CU的块向量候选项中选择的CU的块向量预测值之间的块向量差(BVD)以与在上文描述的AMVP模式下对运动向量差进行编码的方式相同的方式进行编码。块向量预测方法使用两个块向量候选项作为预测值,一个来自左侧邻居,并且另一个来自上方邻居(如果IBC编码的话)。当任一个邻居都不可用时,默认的块向量将用作块向量预测值。用信号传输二进制标志以指示块向量预测值索引。IBC AMVP候选列表由空间候选项和HMVP候选项构成。
-IBC跳过/合并模式:合并候选项索引用于指示来自相邻IBC编码块的合并候选列表中的块向量候选项中的哪一个用于预测当前块的块向量。IBC合并候选列表由空间候选项、HMVP候选项和成对候选项构成。
提高现有技术的编码标准所采用的编码效率的另一种方法是使用例如多核处理器将并行处理引入到视频编码/解码过程中。例如,波前并行处理(WPP)已经被引入到HEVC中,作为使用多个线程并行地对多个CTU行进行编码或解码的特征。
图5B是图示了根据本公开的一些实施方式的使用波前并行处理(WPP)对图片的多个CTU行进行多线程编码的框图。当WPP被启用时,有可能以波前方式并行处理多个CTU行,其中在两个相邻波前的开始之间可能存在两个CTU的延迟。例如,为了使用WPP对图片500进行编码,视频编码器(如视频编码器20和视频解码器30)可以将图片500的编码树单元(CTU)划分为多个波前,每个波前对应于图片中相应的CTU行。视频编码器可以例如使用第一编码器核心或线程开始对顶部波前进行编码。在视频编码器已经对顶部波前的两个或更多个CTU进行编码之后,视频编码器可以例如使用第二并行编码器核心或线程与对顶部波前进行编码并行地开始对从顶部排第二的(second-to-top)波前进行编码。在视频编码器已经对从顶部排第二的波前的两个或更多个CTU进行编码之后,视频编码器可以例如使用第三并行编码器核心或线程与对更高的波前进行编码并行地开始对从顶部排第三的(third-to-top)波前进行编码。此型式可以沿图片500中的波前继续下去。在本公开中,视频编码器使用WPP同时进行编码的一组CTU被称为“CTU组”。因此,当视频编码器使用WPP对图片进行编码时,CTU组的每个CTU可以属于该图片的唯一波前,并且该CTU可以距相应的上方波前中的CTU偏移该图片的至少两列CTU。
视频编码器可以基于上方波前的前两个块的数据以及包括当前波前的第一编码块的条带的条带头部的一个或多个元素来初始化该当前波前的上下文以执行该当前波前的上下文自适应二进制算术编码(CABAC)。视频编码器可以在对后续CTU行上方的CTU行的两个CTU进行编码之后使用上下文状态来执行后续波前(或CTU行)的CABAC初始化。换句话说,在开始对当前波前进行编码之前,视频编码器(或更具体地,视频编码器的线程)可以对当前波前上方的波前的至少两个块进行编码,假设当前波前不是图片的CTU顶行。视频编码器然后可以在对当前波前上方的波前的至少两个块进行编码之后初始化当前波前的CABAC上下文。在此示例中,图片500的每个CTU行是单独的分区并且具有相关联线程(WPP线程1、WPP线程2、...),使得图片500中的多个CTU行可以并行编码。
因为HMVP表的当前实施方式使用全局运动向量(MV)缓冲器来存储先前重构的运动向量,所以此HMVP表无法在上文结合图5B描述的启用WPP的并行编码方案上实施。具体地,全局MV缓冲器由视频编码器的编码/解码过程的所有线程共享的事实防止了在第一WPP线程(即,WPP线程1)之后的WPP线程被启动,因为这些WPP线程必须等待来自第一个WPP线程(即,第一个CTU行)的最后CTU(即,最右CTU)的HMVP表更新完成。
为了克服所述问题,提出了用多个CTU行专用缓冲器替换由各WPP线程共享的全局MV缓冲器,使得当在视频编码器处启用WPP时,CTU行的每个波前具有其自身的缓冲器来存储与由对应的WPP线程正处理的该CTU行相对应的HMVP表。注意,具有其自己的HMVP表的每个CTU行等效于在对CTU行的第一个CU进行编码之前重置HMVP表。HMVP表重置是清除HMVP表中由另一个CTU行的编码产生的所有运动向量。在一个实施方式中,重置操作是将HMVP表中的可用运动向量预测值的数目设置为零。在又另一个实施方式中,重置操作可以是将HMVP表中所有条目的参考索引设置为无效值,如-1。通过这样做,无论三种模式(AMVP、合并和跳过)中的哪一种模式,特定波前内当前CTU的MVP候选列表的构造都取决于与处理该特定波前的WPP线程相关联的HMVP表。除了上文描述的两个CTU延迟之外,在不同波前之间不存在相互依赖性,并且与不同波前相关联的运动向量候选列表的构造可以像图5B中描绘的WPP过程那样并行进行。换句话说,在处理特定波前开始时,HMVP表被重置为空,而不影响由另一WPP线程对CTU的另一个波前的编码。在一些情况下,可以在对每个单独CTU编码之前将HMVP表重置为空。在这种情况下,HMVP表中的运动向量被限制为特定CTU,并且HMVP表内的运动向量被选择为该特定CTU内的当前CU的运动向量的可能性可能更高。
图6是图示了根据本公开的一些实施方式的示例性过程的流程图,视频编码器(如视频编码器20或视频解码器30)通过所述示例性过程至少使用HMVP表来实施构造运动向量预测值候选列表的技术。出于说明性目的,该流程图描绘了视频解码过程。首先,视频解码器30获取(610)包括与多个编码图片相关联的数据的编码视频比特流。如图4A和图4C中描绘的,每个图片包括多个编码树单元(CTU)行,并且每个CTU包括一个或多个编码单元(CU)。视频解码器30从视频比特流中提取不同的信息片段(如语义元素和像素值)以逐行重构图像。
在对当前CTU行进行解码之前,视频解码器30首先重置(620)当前CTU行的基于历史的运动向量预测值(HMVP)表。如上所述,HMVP表的重置确保视频解码器30能够使用例如多线程过程(一个线程针对每个CTU行具有其自己的HMVP表)或多核处理器(一个核针对每个CTU行具有其自己的HMVP表)或两者来并行地对当前图片的多个CTU行进行解码。在又一些其他实施例中,在解码当前CTU之前,视频解码器30首先重置(620)当前CTU的基于历史的运动向量预测值(HMVP)表。如上所述,HMVP表的重置确保视频解码器30能够使用例如多线程过程(一个线程针对每个CTU具有其自己的HMVP表)或多核处理器(一个核针对每个CTU具有其自己的HMVP表)或两者来并行地对当前图片的多个CTU行进行解码。
在对当前CTU行进行解码(630)的同时,视频解码器30维持(630-1)HMVP表中的多个运动向量预测值。如上所述,存储在HMVP表中的每个运动向量预测值已经用于对当前CTU行内的至少另一个CU进行解码。运动向量预测值存在于HMVP表中的事实是因为当HMVP表参与如上文描述的构造运动向量候选列表的过程时,所述运动向量预测值可以再次用于预测当前CTU行内的另一个CU。
对于当前CTU行的当前CU,视频解码器30首先从视频比特流中提取(630-3)预测模式。如上所述,CU可以具有多种类型的预测模式,包括高级运动向量预测(AMVP)模式、合并模式、跳过模式、IBC AMVP模式和IBC合并模式。一旦视频编码器20为CU选择适当的预测模式,就在比特流中用信号传输所选预测模式。如上所述,存在以不同顺序执行的用于构造运动向量候选列表的不同组步骤。在此,视频解码器30根据预测模式并且至少部分地基于HMVP表中的多个运动向量预测值来构造(630-5)运动向量候选列表。运动向量候选列表的其他来源包括来自当前CU的空间上相邻的CU和/或时间上并置的CU的运动向量预测值(当预测模式是AMVP模式、IBC AMVP模式和IBC合并模式之一时)以及可选地成对的运动向量预测值(当预测模式是合并模式和跳过模式之一时)。可选地,当运动向量候选列表未达到预设长度时,可以将一个或多个零值运动向量预测值添加到运动向量候选列表。
接下来,视频解码器30从运动向量候选列表中选择(630-7)当前CU的运动向量预测值,并且至少部分地基于预测模式和所选运动向量预测值来确定(630-9)运动向量。如上所述,根据预测模式是否为AMVP模式,所选运动向量预测值可以是或可以不是当前CU的估计运动向量。例如,如果预测模式是AMVP模式,则通过将从比特流中恢复的运动向量差加到所选运动向量预测值来确定估计运动向量,并且然后至少部分地使用估计运动向量和参考图片内的对应的CU来对当前CU进行解码。但是,如果预测模式是合并模式或跳过模式,则所选运动向量预测值已经是估计运动向量,其可以用于对当前CU连同参考图片内的对应CU进行解码。最后,视频解码器30基于所确定的运动向量更新(630-11)HMVP表。如上所述,HMVP表中的每一个成员之前已经用于对至少另一个CU进行解码,并且保持在用于构造运动向量候选列表的HMVP表中,直到所述成员通过表重置或者通过插入用于对当前CTU行内的另一个后续CU进行解码的运动向量而被从HMVP表中移除。
在一些实施方式中,基于为当前CU确定的运动向量与HMVP表中的多个运动向量预测值之间的比较结果,将运动向量插入到HMVP表中具有两种可能的情况。如果HMVP表中的多个运动向量预测值中没有运动向量预测值与所确定的运动向量相同,则当HMVP表为满并且运动向量作为最新的运动向量预测值添加到表中时,从HMVP表中移除最早或最旧的运动向量预测值。如果HMVP表中的多个运动向量预测值中的一个运动向量预测值与运动向量相同,则从HMVP表中移除这一个相同的运动向量预测值,并且移除的运动向量预测值之后的所有其他运动向量预测值在HMVP表中向前移动,使得运动向量作为最新的运动向量预测值附加到HMVP表的末尾。
如上所述,可以例如使用WPP并行地对多个CTU行中的两行或更多行进行编码/解码,每个CTU行都具有相关联的HMVP表,该相关联的HMVP表用于存储用于对对应的CTU行进行编码/解码的多个基于历史的运动向量预测值。例如,线程被分配用于对被解码的当前图片的特定CTU行进行解码,使得不同CTU行具有不同的相关联线程,并且可以如上文结合图5B描述的并行地进行解码。在一些示例中,视频解码器30将运动向量候选列表内的一个或多个运动向量预测值标识为冗余的运动向量,并且将其从运动向量候选列表中移除以进一步提高编码效率。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于如数据存储介质等有形介质的计算机可读存储介质或有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取回用于实施本申请中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
在对本文中实施方式的描述中使用的术语仅出于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如对实施方式的描述和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解的是,本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、元件和/或部件的存在,但不排除一个或多个其他特征、元件、部件和/或其群组的存在或添加。
还将理解,尽管术语第一、第二等在本文中可以用来描述各种要素,但是这些要素不应受这些术语的限制。这些术语仅仅是用来将一个元件与另一个元件进行区分。例如,在不偏离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是第一电极和第二电极不是同一电极。
已经出于说明和描述的目的呈现了对本申请的描述,并且描述不旨在是穷举的,或以所公开的形式限于本发明。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是清楚明白的。选择并描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域其他技术人员能够理解本发明的各种实施方式并且最好地利用基本原理以及具有适合于设想的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。

Claims (19)

1.一种对视频数据进行解码的方法,所述方法包括:
获取视频比特流,所述视频比特流包括与多个编码图片相关联的数据,每个图片包括多个编码树单元(CTU,coding tree unit)行,并且每个CTU包括一个或多个编码单元(CU,coding unit);
在对被解码的当前图片的当前CTU行中的第一个CU进行解码之前,重置基于历史的运动向量预测值(HMVP,history-based motion vector predictor)表;
在对所述当前CTU行进行解码时:
在所述HMVP表中维持多个运动向量预测值,所述HMVP表中的每个运动向量预测值用于对所述当前CTU行中的至少一个CU进行解码;
对于所述当前CTU行中待解码的当前CU:
从所述视频比特流中提取预测模式;
根据所述预测模式并且至少部分地基于所述HMVP表中的所述多个运动向量预测值来构造运动向量候选列表;
从所述运动向量候选列表中选择运动向量预测值;
至少部分地基于所述预测模式和所选运动向量预测值来确定运动向量,以对所述当前CU进行解码;以及
基于所确定的运动向量来更新所述HMVP表。
2.如权利要求1所述的方法,其中,所述基于所确定的运动向量来更新所述HMVP表进一步包括:
将所述HMVP表中的所述多个运动向量预测值与所确定的运动向量进行比较;
当确定所述HMVP表中的所述多个运动向量预测值中没有运动向量预测值与所确定的运动向量相同时:
当所述HMVP表为满时,从所述HMVP表中移除最早的运动向量预测值;以及
将所确定的运动向量作为最新的运动向量预测值添加到所述HMVP表中;
当确定所述HMVP表中的所述多个运动向量预测值中的一个运动向量预测值与所确定的运动向量相同时:
从所述HMVP表中移除相同的所述一个运动向量预测值;
在所述HMVP表中,将被移除的运动向量预测值之后的运动向量预测值中的每一个运动向量预测值向前移动;以及
将所确定的运动向量作为最新的运动向量预测值添加到所述HMVP表中。
3.如权利要求1所述的方法,其中,所述重置所述HMVP表包括:将所述HMVP表中的可用运动向量预测值的数目设置为零。
4.如权利要求1所述的方法,其中,所述预测模式是选自由以下构成的组中的一种:帧间模式、合并(merge)模式、跳过(skip)模式、IBC(intra block copy)帧间模式和IBC合并模式。
5.如权利要求4所述的方法,其中,所述预测模式是所述帧间模式、所述IBC帧间模式和所述IBC合并模式之一,并且所述对所述当前CU进行解码进一步包括:
从所述视频比特流中恢复所述当前CU的运动向量差;
将所述运动向量差和所选运动向量预测值相加,作为所确定的运动向量;以及
使用所确定的运动向量和参考图片内的对应CU来对所述当前CU进行解码。
6.如权利要求4所述的方法,其中,所述预测模式是所述帧间模式、所述IBC帧间模式和所述IBC合并模式之一,并且所述构造所述运动向量候选列表进一步包括:
将来自所述当前CU的在空间上相邻的CU和/或在时间上并置的CU的零个或更多个运动向量预测值添加到所述运动向量候选列表;
将来自所述HMVP表的零个或更多个基于历史的运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的当前长度达到第一预设阈值;以及
将零个或更多个零值运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第一预设阈值。
7.如权利要求4所述的方法,其中,所述预测模式是所述合并模式和所述跳过模式之一,并且所述对所述当前CU进行解码进一步包括:
使用所选运动向量预测值作为所确定的运动向量;以及
使用所确定的运动向量和参考图片内的对应CU来对所述当前CU进行解码。
8.如权利要求4所述的方法,其中,所述预测模式是所述合并模式和所述跳过模式之一,并且所述构造所述运动向量候选列表进一步包括:
将来自所述当前CU的在空间上相邻的CU和/或在时间上并置的CU的零个或更多个运动向量预测值添加到所述运动向量候选列表;
将来自所述HMVP表的零个或更多个基于历史的运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的当前长度达到第二预设阈值;
将零个或更多个成对(pair-wise)运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第二预设阈值;以及
将零个或更多个零值运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第二预设阈值。
9.如权利要求1所述的方法,其中,当并行地对被解码的所述当前图片的两个或更多个CTU行进行解码时,每个CTU行都具有相关联的HMVP表,所述相关联的HMVP表用于存储用于对对应的CTU行进行解码的多个基于历史的运动向量预测值。
10.如权利要求1所述的方法,进一步包括:
为被解码的所述当前图片的所述当前CTU行的解码分配线程,使得被解码的所述当前图片的不同CTU行具有不同的相关联线程。
11.一种计算设备,包括:
一个或多个处理器;
存储器,所述存储器耦接到所述一个或多个处理器;以及
存储在所述存储器中的多个程序,所述多个程序当由所述一个或多个处理器执行时使所述计算设备执行包括以下各项的操作:
获取视频比特流,所述视频比特流包括与多个编码图片相关联的数据,每个图片包括多个编码树单元(CTU,coding tree unit)行,并且每个CTU包括一个或多个编码单元(CU,coding unit);
在对被解码的当前图片的当前CTU行中的第一个CU进行解码之前,重置基于历史的运动向量预测值(HMVP,history-based motion vector predictor)表;
在对所述当前CTU行进行解码时:
在所述HMVP表中维持多个运动向量预测值,所述HMVP表中的每个运动向量预测值用于对所述当前CTU行中的至少一个CU进行解码;
对于所述当前CTU行中待解码的当前CU:
从所述视频比特流中提取预测模式;
根据所述预测模式并且至少部分地基于所述HMVP表中的所述多个运动向量预测值来构造运动向量候选列表;
从所述运动向量候选列表中选择运动向量预测值;
至少部分地基于所述预测模式和所选运动向量预测值来确定运动向量,以对所述当前CU进行解码;以及
基于所确定的运动向量来更新所述HMVP表。
12.如权利要求11所述的计算设备,其中,所述基于所确定的运动向量来更新所述HMVP表进一步包括:
将所述HMVP表中的所述多个运动向量预测值与所确定的运动向量进行比较;
当确定所述HMVP表中的所述多个运动向量预测值中没有运动向量预测值与所确定的运动向量相同时:
当所述HMVP表为满时,从所述HMVP表中移除最早的运动向量预测值;以及
将所确定的运动向量作为最新的运动向量预测值添加到所述HMVP表中;
当确定所述HMVP表中的所述多个运动向量预测值中的一个运动向量预测值与所确定的运动向量相同时:
从所述HMVP表中移除相同的所述一个运动向量预测值;
在所述HMVP表中,将被移除的运动向量预测值之后的运动向量预测值中的每一个运动向量预测值向前移动;以及
将所确定的运动向量作为最新的运动向量预测值添加到所述HMVP表中。
13.如权利要求11所述的计算设备,其中,所述预测模式是选自由以下构成的组中的一种:帧间模式、合并(merge)模式、跳过(skip)模式、IBC(inter block copy)帧间模式和IBC合并模式。
14.如权利要求13所述的计算设备,其中,所述预测模式是所述帧间模式、所述IBC帧间模式和所述IBC合并模式之一,并且所述对所述当前CU进行解码进一步包括:
从所述视频比特流中恢复所述当前CU的运动向量差;
将所述运动向量差和所选运动向量预测值相加,作为所确定的运动向量;以及
使用所确定的运动向量和参考图片内的对应CU来对所述当前CU进行解码。
15.如权利要求13所述的计算设备,其中,所述预测模式是所述帧间模式、所述IBC帧间模式和所述IBC合并模式之一,并且所述构造所述运动向量候选列表进一步包括:
将来自所述当前CU的在空间上相邻的CU和/或在时间上并置的CU的零个或更多个运动向量预测值添加到所述运动向量候选列表;
将来自所述HMVP表的零个或更多个基于历史的运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的当前长度达到第一预设阈值;以及
将零个或更多个零值运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第一预设阈值。
16.如权利要求13所述的计算设备,其中,所述预测模式是所述合并模式和所述跳过模式之一,并且所述对所述当前CU进行解码进一步包括:
使用所选运动向量预测值作为所确定的运动向量;以及
使用所确定的运动向量和参考图片内的对应CU来对所述当前CU进行解码。
17.如权利要求13所述的计算设备,其中,所述预测模式是所述合并模式和所述跳过模式之一,并且所述构造所述运动向量候选列表进一步包括:
将来自所述当前CU的在空间上相邻的CU和/或在时间上并置的CU的零个或更多个运动向量预测值添加到所述运动向量候选列表;
将来自所述HMVP表的零个或更多个基于历史的运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的当前长度达到第二预设阈值;
将零个或更多个成对运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第二预设阈值;以及
将零个或更多个零值运动向量预测值添加到所述运动向量候选列表,直到所述运动向量候选列表的所述当前长度等于所述第二预设阈值。
18.如权利要求11所述的计算设备,其中,当并行地对被解码的所述当前图片的两个或更多个CTU行进行解码时,每个CTU行都具有相关联的HMVP表,所述相关联的HMVP表用于存储用于对对应的CTU行进行解码的多个基于历史的运动向量预测值。
19.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中,所述多个程序在由所述一个或多个处理器执行时,使所述计算设备执行包括以下各项的操作:
获取视频比特流,所述视频比特流包括与多个编码图片相关联的数据,每个图片包括多个编码树单元(CTU,coding tree unit)行,并且每个CTU包括一个或多个编码单元(CU,coding unit);
在对被解码的当前图片的当前CTU行中的第一个CU进行解码之前,重置基于历史的运动向量预测值(HMVP,history-based motion vector predictor)表;
在对所述当前CTU行进行解码时:
在所述HMVP表中维持多个运动向量预测值,所述HMVP表中的每个运动向量预测值用于对所述当前CTU行中的至少一个CU进行解码;
对于所述当前CTU行中待解码的当前CU:
从所述视频比特流中提取预测模式;
根据所述预测模式并且至少部分地基于所述HMVP表中的所述多个运动向量预测值来构造运动向量候选列表;
从所述运动向量候选列表中选择运动向量预测值;
至少部分地基于所述预测模式和所选运动向量预测值来确定运动向量,以对所述当前CU进行解码;以及
基于所确定的运动向量来更新所述HMVP表。
CN202110773749.XA 2018-07-18 2019-07-16 对视频数据进行解码的方法、计算设备和介质 Active CN113556539B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862700106P 2018-07-18 2018-07-18
US62/700,106 2018-07-18
CN201980047626.9A CN112425172A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置
PCT/US2019/041923 WO2020018486A1 (en) 2018-07-18 2019-07-16 Methods and apparatus of video coding using history-based motion vector prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980047626.9A Division CN112425172A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置

Publications (2)

Publication Number Publication Date
CN113556539A CN113556539A (zh) 2021-10-26
CN113556539B true CN113556539B (zh) 2022-05-10

Family

ID=69164858

Family Applications (6)

Application Number Title Priority Date Filing Date
CN202110773749.XA Active CN113556539B (zh) 2018-07-18 2019-07-16 对视频数据进行解码的方法、计算设备和介质
CN201980047626.9A Pending CN112425172A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置
CN202410491245.2A Pending CN118317107A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置
CN202110360876.7A Active CN113099243B (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频解码的方法和装置
CN202410250417.7A Pending CN118200609A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频解码的方法和装置
CN202310292156.0A Active CN116320504B (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置

Family Applications After (5)

Application Number Title Priority Date Filing Date
CN201980047626.9A Pending CN112425172A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置
CN202410491245.2A Pending CN118317107A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置
CN202110360876.7A Active CN113099243B (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频解码的方法和装置
CN202410250417.7A Pending CN118200609A (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频解码的方法和装置
CN202310292156.0A Active CN116320504B (zh) 2018-07-18 2019-07-16 使用基于历史的运动向量预测进行视频编码的方法和装置

Country Status (11)

Country Link
US (4) US11575929B2 (zh)
EP (4) EP4404569A3 (zh)
JP (4) JP7202444B2 (zh)
KR (3) KR102387972B1 (zh)
CN (6) CN113556539B (zh)
DK (1) DK3808090T3 (zh)
FI (1) FI3808090T3 (zh)
MX (2) MX2023002949A (zh)
RU (1) RU2752644C1 (zh)
WO (1) WO2020018486A1 (zh)
ZA (1) ZA202100252B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112369030B (zh) * 2018-07-06 2023-11-10 寰发股份有限公司 解码器的视频解码方法及装置
US11606575B2 (en) 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
DK3808090T3 (da) 2018-07-18 2024-09-16 Beijing Dajia Internet Information Tech Co Ltd Fremgangsmåder og indretninger til videokodning under anvendelse af historiebaseret bevægelsesvektorforudsigelse
JP7237144B2 (ja) * 2018-08-10 2023-03-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオ処理方法、ビデオ処理装置、エンコーダ、デコーダ、媒体、およびコンピュータプログラム
KR20200032657A (ko) * 2018-09-18 2020-03-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN118555389A (zh) * 2018-09-21 2024-08-27 韩国电子通信研究院 图像编码/解码方法和用于发送压缩视频数据的装置
WO2020125738A1 (en) * 2018-12-21 2020-06-25 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using history based motion vector prediction
US11758132B2 (en) * 2018-12-28 2023-09-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder and decoder, encoding method and decoding method with complexity handling for flexibly sized picture partitions
JP2021513795A (ja) * 2019-01-01 2021-05-27 エルジー エレクトロニクス インコーポレイティド 履歴ベース動きベクトル予測に基づいてビデオ信号を処理するための方法及び装置
KR20210123300A (ko) 2019-02-02 2021-10-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
WO2020156540A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
AU2020224256A1 (en) 2019-02-24 2021-09-09 Beijing Bytedance Network Technology Co., Ltd. Independent coding of palette mode usage indication
WO2020177662A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
KR102688366B1 (ko) 2019-03-01 2024-07-24 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 방향 기반 예측
KR20210125506A (ko) 2019-03-04 2021-10-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
US11166015B2 (en) * 2019-03-06 2021-11-02 Tencent America LLC Method and apparatus for video coding
CN113785568B (zh) * 2019-05-02 2024-03-08 字节跳动有限公司 变换跳过模式下的信令通知
CN117294841A (zh) 2019-07-06 2023-12-26 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
JP7359934B2 (ja) 2019-07-10 2023-10-11 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのサンプル識別
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
CN114145013B (zh) 2019-07-23 2023-11-14 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
WO2021018166A1 (en) 2019-07-29 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Scanning order improvements for palette mode coding
EP4027645A4 (en) * 2019-09-03 2022-10-26 Panasonic Intellectual Property Corporation of America ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
CN112055208B (zh) * 2020-08-22 2024-05-07 浙江大华技术股份有限公司 视频编码方法、设备及存储装置
WO2023090924A1 (ko) * 2021-11-18 2023-05-25 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024148103A1 (en) * 2023-01-03 2024-07-11 Bytedance Inc. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105992008A (zh) * 2016-03-30 2016-10-05 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码算法
CN112425172A (zh) * 2018-07-18 2021-02-26 北京达佳互联信息技术有限公司 使用基于历史的运动向量预测进行视频编码的方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7286185B2 (en) * 2003-09-11 2007-10-23 Ati Technologies Inc. Method and de-interlacing apparatus that employs recursively generated motion history maps
MX2012010863A (es) * 2010-04-01 2012-10-15 Sony Corp Dispositivo y metodo de procesamiento de imagenes.
US9143795B2 (en) * 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9083983B2 (en) * 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US20140071235A1 (en) * 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
US9699450B2 (en) * 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US10506253B2 (en) * 2012-10-12 2019-12-10 Electronics And Telecommunications Research Institute Image encoding/decoding method and device using same
US9667990B2 (en) * 2013-05-31 2017-05-30 Qualcomm Incorporated Parallel derived disparity vector for 3D video coding with neighbor-based disparity vector derivation
GB2531001B (en) * 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
EP4418654A3 (en) 2014-10-31 2024-11-06 Samsung Electronics Co., Ltd Video encoding device and video decoding device using high-precision skip encoding and method thereof
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10999595B2 (en) 2015-11-20 2021-05-04 Mediatek Inc. Method and apparatus of motion vector prediction or merge candidate derivation for video coding
CN112369030B (zh) * 2018-07-06 2023-11-10 寰发股份有限公司 解码器的视频解码方法及装置
US11606575B2 (en) * 2018-07-10 2023-03-14 Qualcomm Incorporated Multiple history based non-adjacent MVPs for wavefront processing of video coding
US10491902B1 (en) * 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) * 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105992008A (zh) * 2016-03-30 2016-10-05 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码算法
CN112425172A (zh) * 2018-07-18 2021-02-26 北京达佳互联信息技术有限公司 使用基于历史的运动向量预测进行视频编码的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"CE4-related: History-based Motion Vector Prediction" JVET-K0104;Li Zhang等;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20180714;第1-2节 *
"Overview of the High Efficiency Video Coding (HEVC) Standard";Gary J. Sullivan等;《IEEE Transactions on Circuits and Systems for Video Technology》;20121201;第22卷(第12期);1649-1668 *

Also Published As

Publication number Publication date
JP7506700B2 (ja) 2024-06-26
EP3808090A4 (en) 2021-08-04
US11792422B2 (en) 2023-10-17
CN116320504A (zh) 2023-06-23
RU2752644C1 (ru) 2021-07-29
CN113556539A (zh) 2021-10-26
CN113099243A (zh) 2021-07-09
EP3808090B1 (en) 2024-09-04
CN112425172A (zh) 2021-02-26
US20230102149A1 (en) 2023-03-30
EP4404567A2 (en) 2024-07-24
JP7202444B2 (ja) 2023-01-11
KR20210097230A (ko) 2021-08-06
ZA202100252B (en) 2021-09-29
JP2021524718A (ja) 2021-09-13
DK3808090T3 (da) 2024-09-16
JP2022071147A (ja) 2022-05-13
CN118200609A (zh) 2024-06-14
MX2021000525A (es) 2021-04-12
US12088838B2 (en) 2024-09-10
WO2020018486A1 (en) 2020-01-23
CN118317107A (zh) 2024-07-09
US20230388538A1 (en) 2023-11-30
CN116320504B (zh) 2024-03-29
EP4404568A3 (en) 2024-10-23
JP2024042025A (ja) 2024-03-27
KR20210008569A (ko) 2021-01-22
US11575929B2 (en) 2023-02-07
KR102286460B1 (ko) 2021-08-04
CN113099243B (zh) 2021-11-05
US20230345039A1 (en) 2023-10-26
MX2023002949A (es) 2023-11-07
EP4404567A3 (en) 2024-10-23
US11991386B2 (en) 2024-05-21
EP4404569A3 (en) 2024-10-23
JP2024129144A (ja) 2024-09-26
US20210136405A1 (en) 2021-05-06
FI3808090T3 (fi) 2024-09-18
EP3808090A1 (en) 2021-04-21
EP4404568A2 (en) 2024-07-24
KR102387972B1 (ko) 2022-04-15
EP4404569A2 (en) 2024-07-24
KR20220048066A (ko) 2022-04-19

Similar Documents

Publication Publication Date Title
CN113556539B (zh) 对视频数据进行解码的方法、计算设备和介质
CN114449266B (zh) 用于对视频信号进行编码的方法
CN113170178A (zh) 对合并候选列表的构建的修改
CN113994665A (zh) 采用多模型线性模型的视频编码
CN113242432B (zh) 视频解码的方法、计算设备和存储介质
CN112997494A (zh) 用于视频编码的运动矢量存储
US20240373057A1 (en) Methods and apparatus of video coding using history-based motion vector prediction

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
GR01 Patent grant
GR01 Patent grant