CN110611818A - 视频编解码方法、装置、计算机设备以及存储介质 - Google Patents

视频编解码方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN110611818A
CN110611818A CN201910502069.7A CN201910502069A CN110611818A CN 110611818 A CN110611818 A CN 110611818A CN 201910502069 A CN201910502069 A CN 201910502069A CN 110611818 A CN110611818 A CN 110611818A
Authority
CN
China
Prior art keywords
block
value
motion vector
integer value
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.)
Granted
Application number
CN201910502069.7A
Other languages
English (en)
Other versions
CN110611818B (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.)
Tencent America LLC
Original Assignee
Tencent America LLC
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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN110611818A publication Critical patent/CN110611818A/zh
Application granted granted Critical
Publication of CN110611818B publication Critical patent/CN110611818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/43Hardware specially adapted for motion estimation or compensation
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请描述了一种在解码器中进行视频解码的方法。其中,接收已编码视频码流。所述已编码视频码流包括至少一个块。获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2。所述整数值p1与块的一角相关,所述整数值p2与所述块的另一角相关。所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量。基于查找表和一个或多个仅包括加法、减法和乘法的运算,从所述整数值p1和所述整数值p2对所述块的运动矢量预测值进行插值。基于所述块的经插值后的运动矢量预测值重建所述块的采样。

Description

视频编解码方法、装置、计算机设备以及存储介质
本申请要求2018年6月14日提交的申请号为62/685,256的美国临时申请“视频编码中的运动矢量预测值插值技术”以及2019年5月15日提交的申请号为16/413,106的美国专利申请“视频编码方法和装置”的优先权,该两个方案以全文引用的方式并入本文中。
技术领域
本申请涉及视频编码和解码技术,尤其涉及视频编解码中的运动矢量预测值插值技术。
背景技术
本文中提供的背景技术描述是为了大体上呈现本申请的上下文。在此背景技术部分描述的程度上,当前署名的发明人的工作,以及在本申请提交时可能不具有作为现有技术的资格的描述的各方面,既不明确地也不隐含地认为是本申请的现有技术。
可以使用具有运动补偿的帧间图像预测进行视频编码及解码。未压缩的数字视频可包括一系列的图像,每个图像具有一定的空间维度,例如,具有1920×1080的亮度采样和相关的色度采样。所述一系列的图像可以具有固定的或可变的图像速率(非正式地,也称作帧速率),例如,每秒60个图像或60赫兹(Hz)。未压缩的视频对比特率有着显著的要求。例如,每采样8比特的1080p60 4:2:0视频(1920×1080的亮度采样分辨率,60赫兹的帧速率)需要接近1.5Gbit/s的带宽。长度为一个小时的这种视频需要超过600GB的存储空间。
视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可有助于降低上述带宽或存储空间的要求,在一些情况下,可降低两个或更多的数量级。无损压缩和有损压缩以及其组合都可以用于视频编码和解码。无损压缩是指可以由压缩的原始信号重建原始信号的精确副本的技术。当使用有损压缩时,重建的信号可能与原始信号不完全一致,但是原始信号与重建的信号之间的失真小得足以使重建的信号可以用于预期应用。有损压缩广泛应用于视频中。有损压缩容许的失真量取决于应用;例如,与电视分发应用的用户相比,某些消费者流媒体传输应用的用户可以容忍较高的失真。可实现的压缩比可以反映的是:可允许的/可容许的失真越高,可产生的压缩比越高。
运动补偿可以是有损压缩技术,且可以涉及以下技术:来自先前重建的图像或其一部分(参考图像)的采样数据块,在按运动矢量(下文称为MV)指示的方向上进行空间移位后,可用于预测新重建的图像或图像的一部分。在某些情况下,参考图像可与当前正在重建的图像相同。MV可以具有两个维度X和Y,或者三个维度,其中第三个维度表示使用中的参考图像(间接地,后者可表示时间维度)。
在一些视频压缩技术中,可应用于采样数据的某一区域的MV可以根据其他MV来预测,例如根据与采样数据中与正在重建的区域在空间上邻近的另一区域相关、且解码顺序先于所述MV的MV来预测。这样做可以大大减少编码MV所需的数据量,从而消除冗余信息并增加压缩。MV预测可以有效地运行,例如,因为当对从相机导出的输入视频信号(称为自然视频)进行编码时,存在一种统计上的可能性,即那些比单个MV适用的区域更大的区域,会在类似的方向上移动,因此,在某些情况下,可以用从邻近区域的MV导出的类似运动矢量进行预测。这样使得给定区域所发现的MV与从周围MV预测出的MV类似或相同,且在熵编码之后,又可以用比对MV直接编码时所使用的比特数更少的比特数来表示。在某些情况下,MV预测可以是对从原始信号(即采样流)导出的信号(即MV)进行无损压缩的示例。在其他情况下,MV预测本身可能是有损的,例如,在根据周围若干MV计算预测值时,由于化整误差导致的有损。
发明内容
本申请的各方面提供了用于视频编码/解码的方法和装置。在某些示例中,一种装置包括用于视频解码的处理电路。
在本申请的实施例中,提供了一种在解码器中进行视频解码的方法。在所述方法中,接收已编码视频码流。所述已编码视频码流包括至少一个块。获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2。其中p1与块的一角相关,p2与所述块的另一角相关。所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量。另外,基于查找表和一个或多个仅包括加法、减法和乘法的运算,从整数值p1和整数值p2中对所述块的运动矢量预测值进行插值。基于所述块的经插值后的运动矢量预测值重建所述块的采样。
在本申请的实施例中,提供了一种装置。所述装置包括处理电路。所述处理电路接收已编码视频码流,所述已编码视频码流包括至少一个块。所述处理电路获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2。p1与块的一角相关,p2与所述块的另一角相关。所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量。所述处理电路基于查找表和一个或多个仅包括加法、减法和乘法的运算,从整数值p1和整数值p2对所述块的运动矢量预测值进行插值。另外,所述处理电路基于所述块的经插值后的运动矢量预测值重建所述块的采样。
在本申请的实施例中,提供了一种装置。所述装置包括:接收模块,用于接收已编码视频码流,所述已编码视频码流包括至少一个块;获取模块,用于获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2,其中p1与块的一角相关,p2与所述块的另一角相关,所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量;插值模块,用于基于查找表和一个或多个仅包括加法、减法和乘法的运算,从所述整数值p1和所述整数值p2对所述块的运动矢量预测值进行插值;以及重建模块,用于基于所述块的经插值后的运动矢量预测值重建所述块的采样。
本申请的各方面还提供一种存储指令的非易失性计算机可读介质,当计算机执行所述指令进行视频解码时,该指令使得所述计算机执行所述视频解码方法。在所述方法中,接收已编码视频码流。所述已编码视频码流包括至少一个块。获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2。其中p1与块的一角相关,p2与所述块的另一角相关。所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量。另外,基于查找表和一个或多个仅包括加法、减法和乘法的运算,从整数值p1和整数值p2中对所述块的运动矢量预测值进行插值。基于所述块的经插值后的运动矢量预测值重建所述块的采样。
附图说明
结合以下详细描述和附图,本申请主题的其他特征、本质和各种优点将会变得更加清楚,其中:
图1是根据H.265标准所示的当前块及其周围空间合并候选块的示意图。
图2是根据一个实施例的通信系统的简化框图的示意图。
图3是根据另一个实施例的通信系统的简化框图的示意图。
图4是根据一个实施例的解码器的简化框图的示意图。
图5是根据一个实施例的编码器的简化框图的示意图。
图6示出了根据另一个实施例的编码器的框图。
图7示出了根据另一个实施例的解码器的框图。
图8示出了根据一个实施例的编码块中采样的示例。
图9示出了根据本申请一个实施例的视频解码方法的流程图。
图10示出了根据本申请一个实施例的插值过程的流程图。
图11是根据一个实施例的计算机系统的示意图。
具体实施方式
关于各种MV预测机制的描述,详见H.265/HEVC(ITU-T Rec.H.265,“高效视频编码”,2016年12月)。在H.265所提供的多种MV预测机制中,本文描述的是一种下文称为“空间合并”的技术。
参照图1,当前块(101)包括由编码器在运动搜索过程中发现的可由空间移位后具有相同大小的先前块进行预测的采样。MV不是直接进行编码,而是可以通过与一个或多个参考图像相关的元数据推导出所述MV,例如,从最近的(按解码顺序)参考图像,使用与五个周围采样(分别用A0、A1和B0、B1、B2(分别为102到106)表示)中任意一个周围采样相关的MV推导出。在H.265中,MV预测可使用相邻块正在使用的同一参考图像的预测值。
图2示出了根据本申请一个实施例的通信系统(200)的简化框图。通信系统(200)包括多个终端设备,所述多个终端设备可以通过例如网络(250)彼此通信。例如,通信系统(200)包括通过网络(250)互连的第一对终端设备(210)和(220)。在图2的示例中,第一对终端设备(210)和(220)执行单向数据传输。例如,终端设备(210)可以对视频数据(例如,终端设备(210)捕获的视频图像流)进行编码,并通过网络(250)传输给另一个终端设备(220)。编码的视频数据可以以一个或多个已编码视频码流的形式进行传输。终端设备(220)可以通过网络(250)接收编码的视频数据,对编码的视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图像。单向数据传输在媒体服务应用等中可能比较常见。
在另一示例中,通信系统(200)包括第二对终端设备(230)和(240),用于执行编码的视频数据(例如在视频会议期间的编码视频数据)的双向传输。对于数据的双向传输,在一个示例中,终端设备(230)和(240)中的每个终端设备均可对视频数据(例如由终端设备捕获的视频图像流)进行编码,以便通过网络(250)传输到终端设备(230)和(240)中的另一个终端设备。终端设备(230)和(240)中的每个终端设备还可接收由终端设备(230)和(240)中的另一个终端设备传输的编码视频数据,并对编码的视频数据进行解码以恢复视频数据,并根据所恢复的视频数据在可访问的显示设备上显示视频图像。
在图2的示例中,终端设备(210)、(220)、(230)和(240)可描述为服务器、个人计算机和智能手机,但根据本申请的原理可以不限于此。本申请的实施例可应用于笔记本电脑、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示可在终端设备(210)、(220)、(230)和(240)之间传输编码视频数据的任意数量的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可以在电路交换和/或分组交换信道中交换数据。具有代表性的网络包括电信网、局域网、广域网和/或因特网。就本申请讨论的目的而言,网络(250)的架构和拓扑结构对于本申请的操作无关紧要,除非下文另有说明。
作为本申请主题应用的一个示例,图3示出了视频编码器和视频解码器在流媒体环境中的放置。本申请的主题同样可适用于其他支持视频的应用场合,包括例如,视频会议、数字电视以及在CD、DVD、记忆棒等数字媒体上存储压缩视频等。
流媒体传输系统可包括采集子系统(313),采集子系统(313)可包括视频源(301),例如数字摄像头,用于创建例如未压缩的视频图像流(302)。在一个示例中,视频图像流(302)包括由数字摄像头拍摄的采样。与编码视频数据(304)(或已编码视频码流)相比,视频图像流(302)在图中用粗线示出,强调其数据量很高,可通过电子设备(320)进行处理,电子设备(320)包括耦接到视频源(301)的视频编码器(303)。视频编码器(303)可以包括硬件、软件或软硬件组合,以实现或实施下文详述的本申请主题的各个方面。与视频图像流(302)相比,编码视频数据(304)(或已编码视频码流(304))用细线示出,强调其数据量较低,其可以存储在流媒体服务器(305)上以备将来使用。一个或多个流媒体客户端子系统(例如图3中的客户端子系统(306)和(308))可访问流媒体服务器(305)以检索编码视频数据(304)的副本(307)和(309)。客户端子系统(306)可以包括例如在电子设备(330)中的视频解码器(310)。视频解码器(310)对编码视频数据的输入副本(307)进行解码,并生成可在显示器(312)(例如显示屏)或其他渲染设备(未示出)上渲染的视频图像输出流(311)。在某些流媒体系统中,编码视频数据(304)、(307)和(309)(例如视频比特流)可根据某些视频编码/压缩标准进行编码。所述标准包括ITU-T推荐标准H.265。在一个示例中,正在开发的视频编码标准是通俗称为通用视频编码(Versatile Video Coding,VCC)的视频编码标准。本申请主题可在VVC背景下使用。
应注意,电子设备(320)和(330)可包括其他组件(未示出)。例如,电子设备(320)可包括视频解码器(未示出),电子设备(330)可包括视频编码器(未示出)。
图4示出了根据本申请一个实施例的视频解码器(410)的框图。视频解码器(410)可为电子设备(430)的组成部分。电子设备(430)可以包括接收器(431)(例如接收电路)。视频解码器(410)可代替图3示例中的视频解码器(310)进行使用。
接收器(431)可接收待由视频解码器(410)进行解码的一个或多个编码视频序列;在同一实施例或另一实施例中,每次可接收一个编码视频序列,其中每个编码视频序列的解码独立于其他编码视频序列。编码视频序列可通过信道(401)接收,信道(401)可为连接到存储编码视频数据的存储设备的硬件/软件链路。接收器(431)接收编码视频数据和其他数据,例如编码的音频数据和/或辅助数据流,这些数据可以转发至各自的使用实体(未示出)上。接收器(431)可将编码视频序列与其他数据分开。为防止网络抖动,可以在接收器(431)和熵解码器/解析器(420)(下文称“解析器(420)”)之间耦接一个缓冲存储器(415)。在某些应用中,缓冲存储器(415)为视频解码器(410)的一部分。在其他实施例中,其可以设置在视频解码器(410)之外(未示出)。在其他实施例中,可以在视频解码器(410)外部设置一个缓冲存储器(未示出),例如用于防止网络抖动,另外在视频解码器(410)内部设置另一个缓冲存储器(415),例如用于处理播放计时。当接收器(431)从具有足够带宽和可控性的存储/转发设备,或者从等时同步网接收数据时,可能不需要缓冲存储器(415),或者缓冲存储器(315)可以很小。在互联网等尽力而为的分组网络上使用时,可能需要缓冲存储器(415),而且缓冲存储器(415)可以相对较大,且有利地具有自适应的大小,并且可以至少部分地实施于视频解码器(410)外部的操作系统或类似的元件(未示出)。
视频解码器(410)可包括解析器(420),用于从编码视频序列中重建符号(421)。这些符号的类别包括用于管理视频解码器(410)操作的信息,以及可能会用于控制渲染设备(412)(例如显示屏)等渲染设备的信息,所述渲染设备不是电子设备(430)的组成部分,但可耦接到电子设备(430)上,如图4所示。用于渲染设备的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)参数集片段(未示出)的形式。解析器(420)可对所接收的编码视频序列进行解析/熵解码。编码视频序列可根据视频编码技术或标准并遵循可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等多种原理进行编码。解析器(420)可基于与所述群组相对应的至少一个参数,从编码视频序列中提取一组子群参数,用于视频解码器中的至少一个像素子群。子群可包括图像组(GOP)、图像、图块、片段、宏块、编码单元(CU)、区块、变换单元(TU)、预测单元(PU)等。解析器(420)还可从编码视频序列中提取变换系数、量化器参数(QP)值、运动矢量等信息。
解析器(420)可对从缓冲存储器(415)接收的视频序列进行熵解码/解析,已生成符号(421)。
符号(421)的重建可涉及多个不同的单元,取决于编码视频图像或其部分(例如:帧间和帧内图像、帧间和帧内块)的类型以及其他因素。涉及哪些单元以及如何涉及,可以由解析器(420)从编码视频序列中解析出的子群控制信息控制。为清楚起见,下文没有详述解析器(420)与多个单元之间的这种子群控制信息的流程。
除前文已提及的功能块之外,视频解码器(410)还可在概念上细分为多个功能单元,如下文所述。在商业约束下运作的实际实施中,这些单元中的许多单元彼此密切交互,并且可以至少部分地相互集成。然而,为了描述本申请主题,适当地将解码器在概念上细分为以下功能单元。
第一单元为缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收量化的变换系数以及控制信息,包括使用哪种变换、块大小、量化因子、量化缩放矩阵等,作为符号(421)。缩放器/逆变换单元(451)可输出包含采样值的块,包含采样值的块可以输入到聚合器(455)中。
在一些情况下,缩放器/逆变换单元(451)的输出采样可以与帧内编码块相关;即:不使用来自先前已重建的图像的预测信息,而是可以使用来自当前图像的先前已重建部分的预测信息的块。此类预测信息可由帧内预测单元(452)提供。在一些情况下,帧内预测单元(452)使用从当前图像缓冲器(458)获取的周围已重建的信息,生成与正在重建的块的大小和形状相同的块。当前图像缓冲器(458)用于缓冲部分重建的当前图像和/或完全重建的当前图像。在一些情况下,聚合器(455)在每个采样的基础上,将帧内预测单元(452)已经生成的预测信息添加至由缩放器/逆变换单元(451)提供的输出采样信息上。
在另一些情况下,缩放器/逆变换单元(451)的输出采样可以与经帧间编码且可能经运动补偿的块相关。在这种情况下,运动补偿预测单元(453)可以访问参考图像存储器(457),以获取用于预测的采样。在根据于所述块相关的符号(421)对所获取的采样进行运动补偿之后,这些采样可以通过聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下称为残差采样或残差信号),从而生成输出采样信息。运动补偿预测单元(453)从参考图像存储器(457)中获取预测采样的地址可以通过运动矢量进行控制,并通过符号(421)的形式,例如X、Y及参考图像分量,应用于运动补偿预测单元(453)。运动补偿还可包括在使用子采样精确运动矢量时,从参考图像存储器(457)中提取的采样值插值、运动矢量预测机制等。
聚合器(455)的输出采样可以在环路滤波器单元(456)中,经过各种环路滤波技术进行处理。视频压缩技术可包括环路内滤波技术,环路内滤波技术由编码视频序列(也称为已编码视频码流)中包含的参数控制,所述参数以来自解析器(420)的符号(421)的形式可由环路滤波器单元(456)使用,但环路内滤波技术也可以对在对先前(按解码顺序)编码图像或编码视频序列的部分进行解码的过程中所获得的元信息作出响应,以及对先前已重建且经环路滤波的采样值作出响应。
环路滤波器单元(456)的输出可以为采样流,该采样流可输出到渲染设备(412),并且可存储在参考图像存储器(457)中,用于后续进行帧间图像预测。
某些编码图像,一旦完全重建,可用作后续预测的参考图像。例如,一旦对与当前图像对应的编码图像完全重建,且所述编码图像被标识(例如,通过解析器(420))为参考图像,则当前图像缓冲器(458)可成为参考图像存储器(457)的一部分,并且可以在开始对后续编码图像重建之前,对新的当前图像缓冲器进行重新分配。
视频解码器(410)可根据ITU-T推荐标准H.265等标准中的视频压缩技术进行解码操作。编码视频序列可以遵循所使用的视频压缩技术或标准所规定的语法,在某种意义上,编码视频序列既符合视频压缩技术或标准的语法,也符合视频压缩技术或标准中所记录的特征文件(profile)。具体地,一个特征文件可以从视频压缩技术或标准中提供的所有工具中选择某些工具作为所述特征文件下唯一可用的工具。另外,对于合规性,编码视频序列的复杂度也必须在视频压缩技术或标准的级别所限制的范围内。在一些情况下,视频压缩技术或标准的限制了最大图像大小、最大帧速率、最大重建采样速率(例如,以每秒兆个采样为单位进行测量的)、最大参考图像大小等等。在一些情况下,视频压缩技术或标准的级别设置的范围,可以进一步通过假想的参考解码器(Hypothetical Reference Decoder,HRD)规范和在编码视频序列中用信号表示的HRD缓冲管理元数据加以限制。
在一个实施例中,接收器(431)可以接收编码视频的附加(冗余)数据。所述附加数据可以是编码视频序列的组成部分。附加数据可以由视频解码器(410)使用,用于正确解码数据和/或更准确地重建原始视频数据。附加数据以时间、空间或信噪比(SNR)增强层、冗余切片、冗余图像、前向纠错码等形式。
图5示出了根据本申请的一个实施例的视频编码器(503)的框图。视频编码器(503)包括在电子设备(520)中。电子设备(520)包括发送器(540)(例如,传输电路)。视频编码器(503)可代替图3示例中的视频编码器(303)使用。
视频编码器(503)可从视频源(501)(视频源不属于图5示例中的电子设备(520)的一部分)中接收视频采样,所述视频源(501)可采集待视频编码器(503)编码的视频图像。在另一示例中,视频源(501)为电子设备(520)的一部分。
视频源(501)可以以数字视频采样流的形式提供待视频编码器(503)编码的源视频序列,所述数字视频采样流可具有任何合适的比特深度(例如:8比特、10比特、12比特等)、任何色彩空间(例如,BT.601YCrCb、RGB等),以及任何合适的采样结构(例如,Y CrCb4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储预先准备好的视频的存储设备。在视频会议系统中,视频源(501)可以为采集本地图像信息作为视频序列的摄像头。可以将视频数据作为多个单独的图像来提供,在按顺序观看时,这些图像传递了运动性。这些图像本身可以被组织为空间像素阵列,其中每个像素可以包括一个或多个采样,取决于所使用的采样结构、色彩空间等。本领域技术人员可以理解像素和采样之间的关系。下文的描述侧重于采样。
根据一个实施例,视频编码器(503)可以实时地或在应用所需的任何其他时间约束下,对源视频序列的图像进行编码并压缩为编码视频序列(543)。控制器(550)的一个功能是实施合适的编码速度。在某些实施例中,控制器(550)控制下文所描述的其他功能单元,且在功能性上与其他功能单元耦接。为清楚起见,图中未示出所述耦接。控制器(550)设置的参数可以包括与速率控制的相关参数(图像跳过、量化器、速率失真优化技术的λ值等)、图像大小、图像组(GOP)布局、最大运动矢量搜索范围等。控制器(550)可具有涉及针对某个特定系统设计而优化的视频编码器(503)的其他适当功能。
在一些实施例中,视频编码器(503)在编码环路中进行操作。简单描述一下,在一个示例中,编码环路可包括源编码器(530)(例如,用于基于待编码的输入图像以及参照图像生成符号,例如符号流),以及嵌入在视频解码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器的方式重新构建符号,以生成采样数据(因为在本申请主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩都是无损的)。重建的采样流(采样数据)输入到参考图像存储器(534)。由于符号流的解码会产生与解码器的位置(本地或远程)无关的比特精确结果,参考图像存储器(534)中的内容在本地编码器和远程编码器之间也是比特精确的。换句话说,编码器的预测部分“看到”的参考图像采样与解码器在解码期间使用预测所“看到”的参考图像采样的采样值完全相同。这个参考图像同步性的基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)在一些相关技术中也有用到。
“本地”解码器(533)的操作可以与“远程”解码器的操作相同,例如上文中结合图4详细描述的视频解码器(410)。然而,简要地参照图4所示,因为符号是可用的,且通过熵编码器(545)和解析器(420)可以无损地将符号编码/解码到编码视频序列中,所以,在本地解码器(533)中可以不用完全实施视频解码器(410)的熵解码部分(包括缓冲存储器(415)和解析器(420))。
此时可以观察到,除了解码器中的解析/熵解码外,任何解码器技术也必须以基本相同的功能形式存在于对应的编码器中。因此,本申请的主题集中讨论解码器的操作。关于编码器的技术可以简略描述,因其与本文详细描述的解码器技术正好相反。只有在某些领域需要时对其进行更详细的描述,并在下文中提供。
在操作过程中,在一些示例中,源编码器(530)可进行运动补偿预测编码,根据视频序列中被指定为“参考图像”的一个或多个先前已编码的图像,对输入图像进行预测编码。通过这种方式,编码引擎(532)对输入图像的像素块与可选择作为输入图像预测参考的参考图像像素块之间的差异进行编码。
本地视频解码器(533)可基于源编码器(530)创建的符号,对可指定为参考图像的图像的编码视频数据进行解码。编码引擎(532)的操作可以有利地是有损处理。当编码视频数据可能在视频解码器(图5中未示出)进行解码时,重建的视频序列通常可以为存在一定误差的源视频序列副本。本地视频解码器(533)复制由视频解码器对参考图像进行的解码过程,且可使重建的参考图像存储在参考图像缓存(534)中。通过这种方式,视频编码器(503)可将重建参考图像的副本存储在本地,其与将由远端视频解码器获得的重建参考图像有相同的内容(无传输误差)。
预测器(535)可对编码引擎(532)进行预测搜索。即,对于待编码的新图像,预测器(535)可以在参考图像存储器(534)中搜索采样数据(作为候选参考像素块)或某些元数据,例如参考图像运动矢量、块形状等,作为新图像的合适预测参考。预测器(535)可基于采样块逐像素块地进行操作,从而找到合适的预测参考。在一些情况下,如通过预测器(535)所获得的搜索结果所确定的,输入图像可以具有从存储在参考图像存储器(534)中的多个参考图像中提取的预测参考。
控制器(550)可对源编码器(530)的编码操作进行管理,包括例如设置用于对视频数据进行编码的参数和子群参数等。
上述所有功能单元的输出均可在熵编码器(545)中进行熵编码。熵编码器(545)根据霍夫曼编码、可变长度编码、算术编码等技术,将各个功能单元生成的符号无损压缩成编码视频序列。
发送器(540)可缓冲由熵编码器(545)创建的编码视频序列,将其准备好用于经由通信信道(560)进行传输,通信信道(560)可以是链接到将存储编码视频数据的存储设备的硬件/软件链路。发送器(540)可将视频编码器(503)中的编码视频数据与待传输的其他数据,例如编码音频数据和/或辅助数据流(其源未示出)进行合并。
控制器(550)可对视频编码器(503)的操作进行管理。在编码过程中,控制器(550)可为每个编码图像分配特定的编码图像类型,这可能会影响可应用于各个图像的编码技术。例如,通常可以将图像分配为以下图像类型之一:
帧内图像(I图像)可以是不使用序列中的任何其他图像作为预测源而进行编码和解码的图像。一些视频编解码器可以对不同类型的帧内图像进行解码,包括例如独立解码器刷新(Independent Decoder Refresh,IDR)图像。本领域技术人员了解I图像的各种变体以及其各自的应用和特征。
预测图像(P图像)为可使用帧内预测或帧间预测进行编码和解码的图像,帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的采样值。
双向预测图像(B图像)为可使用帧内预测或帧间预测进行编码和解码的图像,帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的采样值。类似地,多预测图像可使用两个以上的参考图像及相关元数据重建单个块。
通常,源图像可在空间上细分为多个采样块(例如,每个为4×4,8×8,4×8或16×16采样的块),并在逐块的基础上进行编码。各个块可参考其他(已编码的)块进行预测编码,根据应用于所述各个块的相应图像的编码分配来确定。例如,I图像的块可以进行非预测性编码,或者可以参考同一图像的已编码块进行预测编码(空间预测或帧内预测)。P图像的像素块可参考一个先前已编码的参考图像,通过空间预测或时间预测进行预测编码。B图像的块可以参考一个或两个先前已编码的参考图像,通过空间预测或时间预测进行预测编码。
视频编码器(503)可根据预定视频编码技术或标准进行编码操作,例如,ITU-T推荐标准H.265等。在操作中,视频编码器(503)可进行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,编码的视频数据可符合所使用的视频编码技术或标准规定的语法。
在一个实施例中,发送器(540)可随编码视频传输附加数据。源编码器(530)可以将此类数据作为编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图像及切片等其他形式的冗余数据、辅助增强信息(Supplementary EnhancementInformation,SEI)消息、视觉可用性信息(Visual Usability Information,VUI)参数集片段等。
可以将视频采集为时间序列中的多个源图像(视频图像)。帧内图像预测(通常缩写为帧内预测)利用给定图像中的空间相关性,而帧间图像预测利用图像之间的(时间或其他)相关性。在一个示例中,将编码/解码中的特定图像(称为当前图像)划分为多个块。当当前图像中的块与视频中先前编码且仍缓冲中的参考图像中的参考块类似时,可通过一个矢量(称为运动矢量)对当前图像中的块进行编码。在使用多个参考图像的情况下,所述运动矢量指向参考图像中的参考块,且具有识别参考图像的第三维度。
在一些实施例中,双预测技术可应用于帧间图像预测。双预测技术使用两个参考图像(如第一参考图像和第二参考图像)进行预测,所述两个参考图像的解码顺序都优先于视频中的当前图像(但显示顺序可分别在其之前或之后)。所述当前图像中的块可以根据指向所述第一参考图像中的第一参考块的第一运动矢量和指向所述第二参考图像中的第二参考块的第二运动矢量进行编码。所述块可以通过所述第一参考块和所述第二参考块的组合进行预测。
另外,合并模式技术可应用于帧间图像预测,以提高编码效率。
根据本申请的某些实施例,预测(例如帧间图像预测和帧内图像预测)以块为单位进行。例如,根据高效率视频编码(HEVC)标准,视频图像序列中的图像划分为编码树单元(coding tree unit,CTU)进行压缩,其中一个图像中的CTU具有相同的大小,例如64×64像素、32×32像素或16×16像素。通常,一个CTU包括三个编码树块(coding tree block,CTB),即一个亮度CTB和两个色度CTB。每个CTU可以用递归四分树的方式分成一个或多个编码单元(coding unit,CU)。例如,一个64×64像素的CTU可分成一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,对每个CU进行分析,以确定该CU的预测类型,如帧间预测类型或帧内预测类型。根据时间和/或空间的可预测性将CU分成一个或多个预测单元(prediction unit,PU)。通常,每个PU包括一个亮度预测块(predictionblock,PB)和两个色度预测块。在一个实施例中,编码(编码/解码)中的预测操作以预测块为单位进行。以用亮度预测块作为预测块为例,所述预测块包括像素(如8×8像素、16×16像素、8×16像素、16×8像素等)的值矩阵(如,亮度值)。
图6示出了根据本申请的另一实施例的视频编码器(603)的图示。视频编码器(603)用于接收视频图像序列中当前视频图像的采样值的处理块(例如预测块),并将所述处理块编码为编码图像,作为编码视频序列的一部分。在一个示例中,视频编码器(603)可代替图3示例中的视频编码器(303)。
在一个HEVC示例中,视频编码器(603)接收处理块(例如8×8采样组成的预测块等)的采样值矩阵。视频编码器(603)确定处理块是使用帧内模式、帧间模式还是使用例如速率失真优化的双预测模式来实现最佳编码。当以帧内模式对所述处理块进行编码时,视频编码器(603)可使用帧内预测技术将所述处理块编码为编码图像;当以帧间模式或双预测模式对所述处理块进行编码时,视频编码器(603)可分别使用帧间预测或双预测技术将所述处理块编码为编码图像。在某些视频编码技术中,合并模式可为一种帧间图像预测子模式,其中运动矢量由一个或多个运动矢量预测值导出,而无需使用所述预测值之外的编码运动矢量分量。在某些其他视频编码技术中,可存在适用于主体块的运动矢量分量。在一个示例中,视频编码器(603)包括其他组件,例如,模式决策模块(未示出),用于确定所述处理块的模式。
在图6示例中,视频编码器(603)包括如图6所示的耦接在一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。
帧间编码器(630)用于接收当前块(例如,处理块)的采样,将所述块与参考图像中的一个或多个参考块进行比较(例如,前面的图像和后面的图像中的块),生成帧间预测信息(例如,根据帧间编码技术的冗余信息的描述、运动矢量、合并模式信息),以及基于所述帧间预测信息,使用任何合适的技术计算帧间预测结果(例如,预测块)。在某些示例中,参考图像是基于编码视频信息进行解码的已解码参考图像。
帧内编码器(622)用于接收当前块(例如,处理块)的采样,在某些情况下,将所述块与已在同一图像中编码的块进行比较,在变换之后生成量化系数,并在某些情况下生成帧内预测信息(例如,根据一种或多种帧内编码技术的帧内预测方向信息)。在一个示例中,帧内编码器(622)还基于帧内预测信息和同一图像中的参考块,计算帧内预测结果(例如,预测块)。
通用控制器(621)用于确定通用控制数据,并基于所述通用控制数据控制视频编码器(603)的其他组件。在一个示例中,通用控制器(621)确定所述块的模式,并基于所述模式向开关(626)提供控制信号。例如,当所述模式为帧内模式时,通用控制器(621)控制开关(626)选择供残差计算器(623)使用的帧内模式结果,并控制熵编码器(625)选择帧内预测信息并将帧内预测信息包含在比特流中;且当所述模式为帧间模式时,通用控制器(621)控制开关(626)选择供残差计算器(623)使用的帧间预测结果,并控制熵编码器(625)选择帧间预测信息并将帧间预测信息包含在比特流中。
残差计算器(623)用于计算所接收到的块与从帧内编码器(622)或帧间编码器(630)中选择的预测结果之间的差值(残差数据)。残差编码器(624)用于基于所述残差数据进行操作,对所述残差数据进行编码,产生变换系数。在一个示例中,残差编码器(624)用于在频域中转换所述残差数据,并生成变换系数。然后对变换系数进行量化处理,得到量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)用于进行逆变换,并生成解码后的残差数据。解码后的残差数据可适当应用于帧内编码器(622)和帧间编码器(630)。例如,帧间编码器(630)可基于解码后的残差数据和帧间预测信息生成解码块,帧内编码器(622)可基于解码后的残差数据和帧内预测信息生成解码块。所述解码块经适当处理后生成解码图像,且所述解码图像可缓冲在存储器电路(未示出)中,并在某些示例中用作参考图像。
熵编码器(625)用于对所述比特流进行格式化,以包括所述编码块。熵编码器(625)用于根据适当的标准(如HEVC标准)包括各种信息。在一个示例中,熵编码器(625)用于包括通用控制数据、所选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和比特流中的其他适当信息。注意,根据本申请的主题,当在帧间模式或双预测模式的合并子模式下对块进行编码时,不存在残差信息。
图7示出了根据本申请另一个实施例的视频解码器(710)的图示。视频解码器(710)用于接收作为编码视频序列一部分的编码图像,并对所述编码图像进行解码以生成重建的图像。在一个示例中,视频解码器(710)可代替图3示例中的视频解码器(310)。
在图7示例中,视频解码器(710)包括如图7所示的耦接在一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。
熵解码器(771)可用于根据编码图像,重建表示构成编码图像的语法元素的某些符号。此类符号可包括,例如,对块进行编码的模式(例如,帧内模式、帧间模式、双预测模式、帧间模式及双预测模式的合并子模式或另一子模式)、可以识别帧内解码器(772)或帧间解码器(780)进行预测所用的特定采样或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、量化变换系数等形式的残差信息,等等。在一个示例中,当预测模式为帧间模式或双预测模式时,将帧间预测信息提供给帧间解码器(780);以及当预测类型为帧内预测类型时,将帧内预测信息提供给帧内解码器(772)。残差信息可进行反向量化处理,并提供给残差解码器(773)。
帧间解码器(780)用于接收帧间预测信息,并基于所述帧间预测信息生成帧间预测结果。
帧内解码器(772)用于接收帧内预测信息,并基于所述帧内预测信息生成预测结果。
残差解码器(773)用于进行逆量化,以提取去量化的变换系数,并处理去量化的变换系数以将残差从频域转换到空间域。残差解码器(773)可以还需要某些控制信息(以包括量化器参数(QP)),所述信息可由熵解码器(771)提供(图中未图示数据通路,因其可能仅是低量的控制信息)。
重建模块(774)用于在空间域中组合由残差解码器(773)输出的残差和预测结果(视情况而定,由帧间预测模块或帧内预测模块输出)以形成重建块,所述重建块可以是重建的图像的一部分,进而可能是重建视频的一部分。注意,也可进行其他适当的操作,如去块操作等,以提高视觉质量。
注意,视频编码器(303)、(503)和(603)以及视频解码器(310)、(410)和(710)可以使用任何合适的技术来实现。在一个实施例中,视频编码器(303)、(503)和(603)以及视频解码器(310)、(410)和(710)可以使用一个或多个集成电路来实现。在另一个实施例中,视频编码器(303)、(503)和(603)以及视频解码器(310)、(410)和(710)可以使用执行软件指令的一个或多个处理器来实现。
本申请的各方面提供了利用预测偏移来简化仿射运动补偿的技术。
通常,块的运动矢量可以进行显式编码,用信号表示与运动矢量预测值(例如,高级运动矢量预测或AMVP模式)的差值;或进行隐式编码,完全由先前编码或生成的运动矢量表示。后者称为合并模式,即当前块通过其运动信息合并到先前编码的块中。
AMVP模式和合并模式在解码过程中均构造候选列表。
如上所述,运动补偿可包括从参考图像存储器(457)中获取的采样值的插值。在某些硬件环境中,实施实现插值中的除法运算的硬件,可能成本过高。一种例外情况是,当所述除法是被一个限制为2的幂的值所除时,用右移运算便足够了。视频编码器和解码器需要包含某些硬件来执行除法运算,其成本可能非常高,特别是当需要频繁进行插值时。具体而言,用于执行通常需要除法运算的插值的硬件(包括芯片表面积、时钟周期或管线级)设计起来可能非常昂贵且耗时,且实施和生产起来可能非常昂贵。因此,需要避免在插值中使用除法运算,以降低视频编码器和解码器的硬件成本等的技术。
当水平和/或垂直维度的块大小不能被2的幂整除时,以及当运动矢量插值中与所述块的各个角相关的一些值已知时,相关的插值技术依赖于除法运算。例如,JFET-J0061介绍了一种平面MV预测技术,但其需要进行除法运算。标题为“联合开发测试模型7(JEM7)的算法描述”的JVET-G1001在第2.2.4部分也包括一种需要进行除法运算的机制。其相应的软件不依赖除法运算来实现除法。然而,JVET-G1001描述的是采样值之和的除法,而不是运动矢量分量值的除法。在JCTVC-C206中至少部分描述了JVET-G1001v1.zip中实现的技术细节。此外,BMS-1.0rc1源代码,特别是文件CommonLib/IntraPrediction.cpp和帧内预测函数IntraPrediction::xCalcLMParameterGeneralized(),除了别的内容外,实现了除法函数,没有用到除法运算来计算JVET-G1001第2.2.4部分中公式(2)和(3)的α和β值。其中的除法机制可以使用高达512的整数除数。
本申请的实施例包括两种技术的组合:(1)平面运动矢量预测或类似需要元数据(例如运动矢量分量)插值并使用除法运算的技术,以及(2)使用多种硬件友好的技术,如将表查找转换成小表和包括乘法、移位和加法的运算替代/近似插值,而不使用除法运算。JFET-J0061描述了第一种技术的一个示例,前面提到的帧内预测函数IntraPrediction::xCalcLMParameterGeneralized实现了第二个技术的一个示例,并在JCTVC-C206中进行了描述。
图8示出了每个维度上由六个采样组成的一排示例方形块。在图8中,v0、v1、v2、v3、v4和v5均为待从两个值i1和i2中插值的值。所述两个值i1和i2为六个采样的插值提供了基础。这仅仅是提高编码效率的运动矢量插值技术的一个例子。用于运动补偿的插值技术并不局限于此示例。
在一个实施例中,值vn是运动矢量预测值的水平(X)分量,可用于重建块,i1和i2是与已重建采样相关联的运动矢量的水平(X)分量。同样地,运动矢量的其他分量,如垂直(Y)分量,也可根据本申请进行插值。在重建过程中,i1和i2可以用信号表示为块的运动矢量预测值。这种信号传递的细节和与采样值i1和i2相关联的精确位置仅用于示例。本领域技术人员容易理解这种信号表示方法,并且可以为采样值i1和i2设计对预测同样有益的其他位置。
在一个实施例中,通过线性插值对运动矢量预测值和值vn进行预测。然而,在本申请中也可使用需要除以2的幂以外的其他因子的其他插值形式。当使用非线性插值时,即使块大小可被2的幂整除,也可能需要除法运算。
在图8中,i1与当前编码块(例如,方形块)的一角相关,i2与当前编码块的另一角相关。与整数值i1相关的所述块的一角和与整数值i2相关的所述块的另一角可能共用所述块的同一边/侧。如果对采样值v0、v1、v2、v3、v4和v5进行线性插值,则基于重建的运动矢量值ik计算每个采样值vn的相应加权因子如下:
v0=i1*(5/5)+i2*(0/5),
v1=i1*(4/5)+i2*(1/5),
v2=i1*(3/5)+i2*(2/5),
v3=i1*(2/5)+i2*(3/5),
v4=i1*(1/5)+i2*(4/5),
v5=i1*(0/5)+i2*(5/5)。
因此,计算编码块中的采样的值的公式描述如下:
对于每个采样vx,其中0<=x<=s,vx=i1*((s-x)/s)+i2*(x/s),其中s为编码块的大小(编码块中的采样数量)。
如上所述,上述公式可能需要进行两次除法来生成MV预测值分量,即(s-x)/s和x/s。当x和s的值较小且运动矢量分量(i0,i1)的最大容许值较小时,可以使用二维查找表来进行除法运算。然而,在当今的视频编码技术中,可能会使用每个维度有128个采样的块大小,甚至更大的块大小。另外,运动矢量分量的长度可以非常大。例如,运动矢量的长度可以是数百个采样,并且可以是亚像素(sub-pel)精度的,从而可能产生数千个值。因此,查找表在经济层面的考虑上可能不可行,因为表值数量和相关的存储器(例如,只读存储器)的空间会变得太大。
尽管除法运算在数学上可由被除数和除数的对数值的减法来代替,但是对数运算可能会使用相对较长的码字,无论是用整数还是浮点计算机算法来实现。计算对数可由一系列减法和条件语句替代,或在某些情况下通过一维查找表替代。即使查找表可能是一维的,查找表的大小可能仍然很大,并且条件语句可能会产生问题,因其可能需要多个流水线步骤并且需要如推测执行等技术来快速执行。因此,使用对数可能不是替代除法运算的理想方式。
为了克服上述问题,在本申请中,可在硬件和/或软件中有效地实施限于待插值的输入值的某些数量范围的技术,以替代使用除法运算进行插值。输入值的数量范围可应用于插值点的数目、待插值的值的数量范围和/或其他采样值由其进行插值的值的数量范围。
图9示出了根据本申请的一个实施例的流程(900)的流程图。流程(900)可以通过处理电路进行,例如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频编码器(303)功能的处理电路、执行视频解码器(310)功能的处理电路、执行视频解码器(410)功能的处理电路、执行视频编码器(503)功能的处理电路、执行预测器(535)功能的处理电路、执行帧间编码器(630)功能的处理电路、执行帧间解码器(780)功能的处理电路等等。在某些实施例中,流程(900)通过软件指令实现,因此当处理电路执行所述软件指令时,处理电路执行流程(900)。流程(900)开始于(S901)并进行到(S910)。
在(S910)处,接收已编码视频码流。所述已编码视频码流包括多个块,如图8描述的块。所述块可以是编码单元、编码块或预测单元。在一个实施例中,所述块的宽度和所述块的高度的乘积不是2的幂。
在(S920)处,获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2。整数值p1与一个块的一角相关,而整数值p2与所述块的另一角相关。所述第一运动矢量分量和所述第二运动矢量分量可属于同一类型的运动矢量分量。例如,所述第一运动矢量分量和所述第二运动矢量分量均可以是所述块的运动矢量预测值的水平或垂直分量。
在(S930)处,基于查找表和一个或多个仅包括加法、减法和乘法的运算(例如,移位),从整数值p1和整数值p2中对所述块的运动矢量预测值进行插值。在一个实施例中,基于上述线性插值和加权因子来进行插值。
在(S940)处,基于所述块的插值运动矢量预测值重建所述块的采样。然后流程(900)进行到(S999)并在(S999)处结束。
如图9所述,当对运动矢量分量值进行插值时,可使用一种技术来替代除法运算。除法A1/A2的结果(小数)可以仅使用加法、减法和乘法(例如,移位)运算以及一个小的整数查找表来近似求得,除了其他之外,查找表的大小决定着插值的精度。具体地,查找表越大时,插值越精确。在某些实施例中,运算字长限于16比特。
图10示出了根据本申请的一个实施例的流程(1000)的流程图。图10示出了基于查找表和一个或多个仅包括加法、减法和乘法(例如,移位)的运算,从整数值p1和整数值p2对所述块的运动矢量预测值进行插值的示例性过程。流程(1000)可以通过处理电路进行,例如终端设备(210)、(220)、(230)和(240)中的处理电路、执行视频编码器(303)功能的处理电路、执行视频解码器(310)功能的处理电路、执行视频解码器(410)功能的处理电路、执行视频编码器(503)功能的处理电路、执行预测器(535)功能的处理电路、执行帧间编码器(630)功能的处理电路、执行帧间解码器(780)功能的处理电路等等。在某些实施例中,流程(1000)通过软件指令实现,因此当处理电路执行软件指令时,处理电路执行流程(1000)。所述流程开始于(S1001)并进行到(S1010)。
在(S1010)处,按比例缩小所述块的大小。其中,除数值可以是应用运动矢量插值的块的大小(例如,s),除数值可以按比例缩小,以减小所需查找表的大小。在运动矢量分量插值的情况下,且与JCVC-C206所描述的相反,此步骤在本申请的某些实施例中为可选的,因为视频编码技术中所允许的块大小可以固定且可以具有相对小的大小,例如最多64或128个采样。因此,在某些实施例中,在不按比例缩小的情况下,查找表中的条目数量可以比较小。
在(S1020)处,按比例缩小所述整数值p1和所述整数值p2。即,运动矢量分量值,如图8中所示的i1或i2(被除数),可按比例缩小。当在运动矢量插值中使用除法技术时,被除数可以有显著大的大小。例如,某些视频编码技术可使运动矢量达到1/16采样精度,且运动矢量可以覆盖整个图像宽度并可包括4096个采样。在这种情况下,运动矢量的数量范围可为+/-65536。因此,可能需要缩放以将计算的比特深度保持在预定且可实现的相关范围内。例如,所述范围可以为16比特,即上述范围可以按比例缩小到16比特带正负号的数值。然而,所述步骤在本申请的某些实施方案中为可选项。
在(S1030)处,初始值可以通过查找表(例如,一维查找表)或其他数据结构确定。所述初始值可以是整数值i1或i2乘以一个分数的值。所述查找表可以存储包括所述初始值的多个值。所述多个值中的每一个值均对应于从{(1/所述块的大小或所述块按比例缩小的大小)*0,(1/所述块的大小或所述块按比例缩小的大小)*1,(1/所述块的大小或所述块按比例缩小的大小)*2,……,(1/所述块的大小或所述块按比例缩小的大小)*2^n)}中选择的不同数值。所述初始值可根据各种索引技术(包括使用块中相应采样的位置)从所述查找表中确定。所述查找表的输出可以是适当字长的整数,并且近似于从{(1/所述块按比例缩小的大小)*0,(1/所述块按比例缩小的大小)*1,(1/所述块按比例缩小的大小)*2,……,(1/所述块按比例缩小的大小)*2^n)}中选择的值乘以一个固定值。在这种情况下,n为一个整数值,表示所述初始值的字长。然而,当使用带正负号值时,n+1可以表示字长。
在(S1040)处,所述初始值可以乘以所述按比例缩小的整数值p1和所述按比例缩小的整数值p2(被除数),得到除法运算的中间值。在一个实施例中,如果整数值i1和i2在步骤1020中没有按比例缩小,则可将所述初始值与整数值i1和i2相乘,得到除法运算的中间值。
在步骤(S1050),将所述中间值向右移位,得到适当数量范围内的除法结果。该向右移位的操作例如是由移位运算符进行。例如,移位运算符可以在二进制的基础上对数字进行平移,右移一位相当于除2,右移n位相当于除以2的n次方。根据本申请实施例,可以将所述中间值的二进制值向右移动相应的位数,得到除以2的相应倍数的除法结果。通过对其他输入的运动矢量分量进行基本相同的步骤但用不同的加权因子,除法结果可用于推导完整的插值运动矢量分量。因此,存储在查找表中的一些值可以重复使用。然后,步骤(1000)进行到步骤(S1099),并在步骤(S1099)处结束。
如果上述步骤用适当大的字长执行,则可以获得足够精确的结果。当使用更有限的字长时,通过在上述各个步骤之间对结果进行适当移位,也可以得到精确的结果。各种移位运算的数目、方向和移位长度可由本领域技术人员根据所需的字长限制(例如限制16位作为乘法的输入)、除数的数量范围、被除数的数量范围等而导出。JCTVC-C206仅描述了中间结果的一个移位示例。
本申请具有如下优点:(1)可以减少插值所用的资源(如芯片表面);(2)可以缩短硬件的运行时间;(3)可以减少解码器中流水线停顿的次数;以及(4)可以通过重复使用属性已知且为不同目的实施和测试的除法运算的替代品,降低设计成本。
本申请实施例还提供了一种装置,包括:接收模块,用于接收已编码视频码流,所述已编码视频码流包括至少一个块;获取模块,用于获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2,其中p1与所述块的一角相关,p2与所述块的另一角相关,所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量;插值模块,用于基于查找表和一个或多个仅包括加法、减法和乘法的运算,从所述整数值p1和所述整数值p2对所述块的运动矢量预测值进行插值;以及重建模块,用于基于所述块的经插值后的运动矢量预测值重建所述块的采样。
根据本申请的一个实施例,所述插值模块用于对所述块的所述运动矢量预测值进行线性插值。
根据本申请的一个实施例,所述块的宽度与所述块的高度的乘积不是2的幂。
根据本申请的一个实施例,在不使用除法运算的情况下对所述运动矢量预测值进行插值。
根据本申请的一个实施例,与所述整数值p1相关的所述块的一角和与所述整数值p2相关的所述块的另一角共用所述块的同一边。
根据本申请的一个实施例,所述插值模块用于按比例缩小所述块的大小。
根据本申请的一个实施例,所述插值模块用于:按比例缩小所述整数值p1和所述整数值p2;从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块的大小)*0,(1/所述块的大小)*1,(1/所述块的大小)*2,……,(1/所述块的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;将所述初始值乘以所述按比例缩小的整数值p1和所述按比例缩小整数值p2,得到中间值;以及将所述中间值向右移位,得到适当数量范围内的除法结果。
根据本申请的一个实施例,所述插值模块用于:按比例缩小所述整数值p1和所述整数值p2;从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块按比例缩小的大小)*0,(1/所述块按比例缩小的大小)*1,(1/所述块按比例缩小的大小)*2,……,(1/所述块按比例缩小的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;将所述初始值乘以所述按比例缩小的整数值p1和所述按比例缩小的整数值p2,得到中间值;以及将所述中间值向右移位,得到适当数量范围内的除法结果。
根据本申请的一个实施例,所述块的大小基于所述查找表中的条目数按比例缩小。
计算机系统
上述技术可以通过计算机可读指令实施为计算机软件,并且以物理的方式存储在一个或多个计算机可读介质中。例如,图11示出了适于实施本身请主题的某些实施例的计算机系统。
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,所述机器代码或计算机语言通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由计算机中央处理单元(central processing unit,CPU)、图形处理单元(Graphics ProcessingUnit,GPU)等直接执行,或通过译码、微代码等方式执行。
所述指令可以在各种类型的计算机或计算机组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
图11中所示的用于计算机系统的组件本质上是示例性的,并非旨在暗示对实施本申请实施例的计算机软件的使用范围或功能有任何限制。所述组件的配置也不应该解释为对计算机系统的示例性实施例中所示的组件中的任意一个组件或组件的组合有任何依赖或要求。
计算机系统可以包括某些人机接口输入设备。所述人机接口输入设备可以响应于一个或多个人类用户通过例如触觉输入(例如:按键、滑动、数据手套的移动)、音频输入(例如:声音、拍掌)、视觉输入(例如:手势)、嗅觉输入(未示出)进行的输入。所述人机接口设备还可用于采集未必与人的有意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声)、图像(例如:扫描图像、从静止图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
人机接口输入设备可以包括以下一个或多个(每种仅描绘一个):键盘(1101)、鼠标(1102)、触控板(1103)、触摸屏(1110)、数据手套(未示出)、操纵杆(1105)、麦克风(1106)、扫描仪(1107)、摄像头(1108)。
所述计算机系统还可包括某些人机接口输出设备。所述人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人工用户的感觉。所述人机接口输出设备可包括触觉输出设备(例如,通过触摸屏(1110)、数据手套(未示出)或操纵杆(1105)的触觉反馈,但还可以存在不充当输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1109)、头戴式耳机(未示出))、视觉输出设备(例如,屏幕(1110),包括阴极射线管(cathode ray tube,CRT)屏幕、液晶显示(liquid-crystal display,LCD)屏幕、等离子体屏幕、有机发光二极管(organic light-emitting diode,OLED)屏幕,其中,每个设备具有或不具有触摸屏输入功能,具有或不具有触觉反馈能力--其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和烟雾箱(未示出))以及打印机(未示出)。
计算机系统还可以包括人类可访问的存储设备和与存储设备相关联的介质,例如包括CD/DVD ROM/RW(1120)以及CD/DVD等介质(1121)的光学介质、拇指驱动器(1122)、可移除硬盘驱动器或固态驱动器(1123)、磁带和软盘(未示出)等传统磁介质、如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。
本领域技术人员还应当理解,结合本申请的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他易失性信号。
计算机系统还可包括到一个或多个通信网络的接口。网络例如可以是无线的、有线的、光学的。网络还可为局域的、广域的、城域的、车载的和工业的、实时的、容忍延迟的等等。网络还包括以太网、无线局域网等局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载网络和工业网络(包括控制器局域网络总线(CANBus))等等。某些网络通常需要连接到某些通用数据端口或外围总线(1149)(例如,计算机系统的USB端口)的外部网络接口适配器;另一些网络通常通过连接到如下文所描述的系统总线的方式,集成到计算机系统的核心中(例如,以太网接口到PC计算机系统或蜂窝网络接口进入到智能手机计算机系统)中。通过使用这些网络中的任意网络,计算机系统可以与其他实体进行通信。所述通信可以是单向的,仅单向接收(例如,无线电视),仅单向发送(例如,连接到某些CAN总线设备的CAN总线),或者是双向的,例如,通过局域数字网络或广域数字网络连接到其他计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
上述的人机接口设备、人类可访问存储设备和网络接口可以连接到计算机系统的核心(1140)。
核心(1140)可包括一个或多个中央处理单元(CPU)(1141)、图形处理单元(GPU)(1142)、现场可编程门阵列(FPGA)(1143)形式的专用可编程处理单元、用于特定任务的硬件加速器(1144)等。上述设备以及只读存储器(ROM)(1145)、随机存取存储器(1146)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1147)等可通过系统总线(1148)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1148),以便通过额外的中央处理单元、图形处理单元等进行扩展。外围设备可以直接连接到核心的系统总线(1148),也可以通过外围总线(1149)进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。
CPU(1141)、GPU(1142)、FPGA(1143)和加速器(1144)可用于执行某些指令,所述指令组合起来可以构成上述计算机代码。所述计算机代码可以存储在ROM(1145)或RAM(1146)中。过渡性数据也可存储在RAM(1146)中,而永久性数据可以存储在内部大容量存储器(1147)中。通过高速缓存可实现对任何内存设备的快速存储和检索,高速缓存可与一个或多个CPU(1141)、GPU(1142)、大容量存储器(1147)、ROM(1145)、RAM(1146)等紧密关联。
所述计算机可读介质上可具有用于执行各种计算机实现操作的计算机代码。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
作为示例而非限制,具有架构的计算机系统,特别是核心(1140),可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供功能,执行包含在一个或多个有形的、计算机可读介质中的软件。如前文所述,所述计算机可读介质可以是与用户可访问的大容量存储器相关的介质,以及具有核心(1140)的非易失性特定存储器,如核心内部大容量存储器(1147)或ROM(1145)。实施本申请各种实施例的软件可存储在所述设备中,并由核心(1140)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使核心(1140),具体而言,是使其中的处理器(包括CPU、GPU、FPGA等等),执行本文中所描述的特定过程或特定过程的特定部分,包括根据软件限定的过程,限定存储在RAM(1146)中的数据结构,以及修改此类数据结构。另外或作为替代方案,计算机系统可以提供由硬接线的或以其他方式体现于电路(例如:加速器(144))中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。合适时,对软件的引用可以涵盖逻辑,且反之亦然。合适时,对计算机可读介质的引用可以涵盖存储用于执行的软件的电路(例如,集成电路(IC))、体现用于执行的逻辑的电路或这两种电路。本申请涵盖硬件与软件的任何合适的组合。
附录A:缩略词
JEM:Joint Exploration Model,联合开发模式
VVC:Versatile Video Coding,多功能视频编码
BMS:Benchmark Set,基准集合
MV:Motion Vector,运动矢量
HEVC:High Efficiency Video Coding,高效视频编码
SEI:Supplementary Enhancement Information,辅助增强信息
VUI:Video Usability Information,视频可用性信息
GOP:Groups of Pictures,图像组
TU:Transform Unit,变换单元
PU:Prediction Unit,预测单元
CTU:Coding Tree Unit,编码树单元
CTB:Coding Tree Block,编码树块
PB:Prediction Block,预测块
HRD:Hypothetical Reference Decoder,假设参考解码器
SNR:Signal Noise Ratio,信噪比
CPU:Central Processing Unit,中央处理单元
GPU:Graphics Processing Unit,图形处理单元
CRT:Cathode Ray Tube,阴极射线管
LCD:Liquid-Crystal Display,液晶显示
OLED:Organic Light-Emitting Diode,有机发光二极管
CD:Compact Disc,光盘
DVD:Digital Video Disc,数字视频光盘
ROM:Read-Only Memory,只读存储器
RAM:Random Access Memory,随机存取存储器
ASIC:Application-Specific Integrated Circuit,专用集成电路
PLD:Programmable Logic Device,可编程逻辑设备
LAN:Local Area Network,局域网
GSM:Global System for Mobile communications,全球移动通信系统
LTE:Long-Term Evolution,长期演进
CANBus:Controller Area Network Bus,控制器局域网络总线
USB:Universal Serial Bus,通用串行总线
PCI:Peripheral Component Interconnect,外围设备互连
FPGA:Field Programmable Gate Array现场可编程门阵列
SSD:Solid-state drive,固态驱动器
IC:Integrated Circuit,集成电路
CU:Coding Unit,编码单元
HMVP:History-based MVP,基于历史的运动矢量预测值
MVP:Motion Vector Predictor,运动矢量预测值
TMVP:Temporal MVP,时间运动矢量预测值
TPM:Triangular Prediction Mode,三角预测模式
VTM:Versatile Test Model,多功能测试模型
尽管本申请描述了若干示范性实施例,但在本申请的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本申请的原理的系统和方法。

Claims (15)

1.一种视频解码方法,其特征在于,包括:
接收已编码视频码流,所述已编码视频码流包括至少一个块;
获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2,其中p1与块的一角相关,p2与所述块的另一角相关,所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量;
基于查找表和一个或多个仅包括加法、减法和乘法的运算,从所述整数值p1和所述整数值p2对所述块的运动矢量预测值进行插值;以及
基于所述块的经插值后的运动矢量预测值重建所述块的采样。
2.如权利要求1所述的方法,其特征在于,所述插值为线性插值。
3.如权利要求1所述的方法,其特征在于,所述块的宽度与所述块的高度的乘积不是2的幂。
4.如权利要求1所述的方法,其特征在于,在不使用除法运算的情况下对所述运动矢量预测值进行插值。
5.如权利要求1所述的方法,其特征在于,与所述整数值p1相关的所述块的一角和与所述整数值p2相关的所述块的另一角共用所述块的同一边。
6.如权利要求1所述的方法,其特征在于,所述插值还包括:
按比例缩小所述块的大小。
7.如权利要求6所述的方法,其特征在于,所述按比例缩小所述块的大小包括:
按比例缩小所述整数值p1和所述整数值p2;
从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块的大小)*0,(1/所述块的大小)*1,(1/所述块的大小)*2,……,(1/所述块的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;
将所述初始值乘以所述按比例缩小整数值p1和所述按比例缩小的整数值p2,得到中间值;以及
将所述中间值向右移位,得到适当数量范围内的除法结果。
8.如权利要求6所述的方法,其特征在于,其中,所述按比例缩小所述块的大小包括:
按比例缩小所述整数值p1和所述整数值p2;
从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块按比例缩小的大小)*0,(1/所述块按比例缩小的大小)*1,(1/所述块按比例缩小的大小)*2,……,(1/所述块按比例缩小的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;
所述初始值乘以所述按比例缩小的整数值p1和所述按比例缩小的整数值p2,得到中间值;以及
将所述中间值向右移位,得到适当数量范围内的除法结果。
9.如权利要求6所述的方法,其特征在于,其中,基于所述查找表中的条目数,按比例缩小所述块的大小。
10.一种视频解码装置,其特征在于,包括:
接收模块,用于接收已编码视频码流,所述已编码视频码流包括至少一个块;
获取模块,用于获取第一运动矢量分量的整数值p1和第二运动矢量分量的整数值p2,其中p1与块的一角相关,p2与所述块的另一角相关,所述第一运动矢量分量和所述第二运动矢量分量属于同一类型的运动矢量分量;
插值模块,用于基于查找表和一个或多个仅包括加法、减法和乘法的运算,从所述整数值p1和所述整数值p2对所述块的运动矢量预测值进行插值;以及
重建模块,用于基于所述块的经插值后的运动矢量预测值重建所述块的采样。
11.如权利要求10所述的装置,其特征在于,在不使用除法运算的情况下对所述运动矢量预测值进行插值。
12.如权利要求10所述的装置,其特征在于,所述插值模块用于:
按比例缩小所述整数值p1和所述整数值p2;
从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块的大小)*0,(1/所述块的大小)*1,(1/所述块的大小)*2,……,(1/所述块的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;
将所述初始值乘以所述按比例缩小的整数值p1和所述按比例缩小整数值p2,得到中间值;以及
将所述中间值向右移位,得到适当数量范围内的除法结果。
13.如权利要求10所述的装置,其特征在于,所述插值模块用于:
按比例缩小所述整数值p1和所述整数值p2;
从所述查找表中确定一个初始值,所述查找表用于存储包括所述初始值的数值,且每个存储数值对应于从{(1/所述块按比例缩小的大小)*0,(1/所述块按比例缩小的大小)*1,(1/所述块按比例缩小的大小)*2,……,(1/所述块按比例缩小的大小)*2^n}中选择的数值的近似值,其中n为整数值,表示所述初始值的字长;
将所述初始值乘以所述按比例缩小的整数值p1和所述按比例缩小的整数值p2,得到中间值;以及
将所述中间值向右移位,得到适当数量范围内的除法结果。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
15.一种非易失性计算机可读介质,存储有指令,当计算机执行所述指令进行视频解码时,使得所述计算机执行如权利要求1至9中任一项所述的方法的步骤。
CN201910502069.7A 2018-06-14 2019-06-11 视频编解码方法、装置、计算机设备以及存储介质 Active CN110611818B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862685256P 2018-06-14 2018-06-14
US62/685,256 2018-06-14
US16/413,106 US11025946B2 (en) 2018-06-14 2019-05-15 Method and apparatus for video coding
US16/413,106 2019-05-15

Publications (2)

Publication Number Publication Date
CN110611818A true CN110611818A (zh) 2019-12-24
CN110611818B CN110611818B (zh) 2023-01-31

Family

ID=68838853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910502069.7A Active CN110611818B (zh) 2018-06-14 2019-06-11 视频编解码方法、装置、计算机设备以及存储介质

Country Status (2)

Country Link
US (1) US11025946B2 (zh)
CN (1) CN110611818B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115630191B (zh) * 2022-12-22 2023-03-28 成都纵横自动化技术股份有限公司 基于全动态视频的时空数据集检索方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194010A1 (en) * 2002-04-10 2003-10-16 Microsoft Corporation Chrominance motion vector rounding
US20050013365A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Advanced bi-directional predictive coding of video frames
JP2007067551A (ja) * 2005-08-29 2007-03-15 Nippon Telegr & Teleph Corp <Ntt> 動きベクトル推定方法,動きベクトル推定装置,動きベクトル推定プログラムおよび動きベクトル推定プログラム記録媒体
CN101001374A (zh) * 2003-09-07 2007-07-18 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
CN101179721A (zh) * 2006-11-08 2008-05-14 三星电子株式会社 支持多编解码器的运动补偿的方法和设备
JP2011139511A (ja) * 2011-02-28 2011-07-14 Sony Corp 復号装置および復号方法
WO2017157259A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
US20180091825A1 (en) * 2016-09-28 2018-03-29 Qualcomm Incorporated Interpolation filters for intra prediction in video coding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180199062A1 (en) * 2017-01-11 2018-07-12 Qualcomm Incorporated Intra prediction techniques for video coding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030194010A1 (en) * 2002-04-10 2003-10-16 Microsoft Corporation Chrominance motion vector rounding
US20050013365A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Advanced bi-directional predictive coding of video frames
CN101001374A (zh) * 2003-09-07 2007-07-18 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
JP2007067551A (ja) * 2005-08-29 2007-03-15 Nippon Telegr & Teleph Corp <Ntt> 動きベクトル推定方法,動きベクトル推定装置,動きベクトル推定プログラムおよび動きベクトル推定プログラム記録媒体
CN101179721A (zh) * 2006-11-08 2008-05-14 三星电子株式会社 支持多编解码器的运动补偿的方法和设备
JP2011139511A (ja) * 2011-02-28 2011-07-14 Sony Corp 復号装置および復号方法
WO2017157259A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
US20180091825A1 (en) * 2016-09-28 2018-03-29 Qualcomm Incorporated Interpolation filters for intra prediction in video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
唐爱民: "双线性插值放大算法在视频图像实时放大处理系统中的应用", 《电子世界》 *

Also Published As

Publication number Publication date
US11025946B2 (en) 2021-06-01
CN110611818B (zh) 2023-01-31
US20190387246A1 (en) 2019-12-19

Similar Documents

Publication Publication Date Title
CN113545061B (zh) 视频编解码方法和装置、存储介质以及包括处理电路的装置
CN112789850B (zh) 一种视频编解码方法、装置、设备和介质
CN111989918B (zh) 视频解码的方法、装置及存储介质
CN111903131B (zh) 用于解码器中的视频解码的方法、装置及计算机可读介质
CN113678441B (zh) 视频编解码的方法和装置
CN111492661B (zh) 视频编解码方法、装置及存储介质
CN113557728B (zh) 视频编解码方法和装置
CN115866273A (zh) 视频编码、解码的方法、装置、计算机可读介质以及设备
CN112703730B (zh) 视频编解码的方法、设备和存储介质
CN111937387A (zh) 用于采用并行处理的基于历史的运动矢量的预测方法和装置
CN113424541B (zh) 视频编解码的方法和装置
CN116389735A (zh) 一种用于视频编码的方法和相关装置
CN112655205B (zh) 视频编解码的方法和装置
CN114666604A (zh) 视频编码的方法、装置及计算机可读介质
CN112753219A (zh) 用于视频编码的方法和装置
CN113545079B (zh) 视频编解码的方法和装置
CN111050178B (zh) 视频解码的方法、装置、电子设备、存储介质
JP7457170B2 (ja) サブブロックに基づく時間的動きベクトル予測のための方法並びにその機器及びコンピュータプログラム
KR20200125733A (ko) 비디오 코딩을 위한 방법 및 장치
CN111316639B (zh) 视频解码方法和装置、及存储介质
CN112514400B (zh) 视频解码方法、视频解码器、计算机设备和可读存储介质
CN112840657B (zh) 用于视频解码的方法、装置、设备和可读介质
CN112753223A (zh) 用于视频编码的方法和装置
CN112235573B (zh) 视频编解码的方法、装置、电子设备、存储介质
CN113228631B (zh) 视频编解码的方法和装置

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