CN118612445B - 一种视频编解码方法和相关装置 - Google Patents
一种视频编解码方法和相关装置 Download PDFInfo
- Publication number
- CN118612445B CN118612445B CN202410702735.2A CN202410702735A CN118612445B CN 118612445 B CN118612445 B CN 118612445B CN 202410702735 A CN202410702735 A CN 202410702735A CN 118612445 B CN118612445 B CN 118612445B
- Authority
- CN
- China
- Prior art keywords
- encoded
- right boundary
- video frame
- determining
- search area
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种视频编解码方法和相关装置,涉及视频帧并行处理。该方法首先从待编码视频帧中确定待编码的处于目标CTU的当前图块,目标CTU位于并行编码处理的K行CTU中的一行,并行编码处理中相邻行的编码进度相差为编码处理延迟。根据编码处理延迟,确定当前图块的搜索区域在待编码视频帧中的右边界,右边界在已编码CTU中。在搜索区域进行针对当前图块的搜索确定参考图块,使用参考图块对当前图块进行编码,并将下一个待编码的图块作为当前图块,直至对待编码视频帧编码完成,得到已编码视频帧。能够根据编码处理延迟作为确定依据,将搜索区域的右边界确定在已编码CTU中,保证搜索区域涵盖的均为已编码的区域,提升待编码视频帧的编码质量。
Description
技术领域
本申请涉及视频编解码领域,特别是涉及一种视频编解码方法和相关装置。
背景技术
在相关技术中采用波前并行处理(Wave Front Parallel Processing,WPP)的方式进行视频的编解码,在该方式下,由于采用并行处理的方式,视频编解码的效率较高。在使用WPP进行视频编解码的过程中还需要结合帧内预测的方式,通过划定搜索区域确定出当前图块的参考图块,实现视频的压缩或解压缩。帧内预测指的是通过记载当前图块与参考图块之间的差异信息的方式,提高视频的压缩或解压缩的效率。
但是在相关技术中划定搜索区域的方式,不能很好的适用于基于WPP进行视频编解码的情况。
为了适配WPP进行视频编解码的并行处理方式,目前亟需一种能够准确划分参考图块的搜索区域的视频编解码方法。
发明内容
为了解决上述技术问题,本申请提供了一种视频编解码方法和相关装置,能够根据编码处理延迟作为确定依据,将搜索区域的右边界确定在已编码CTU中,保证搜索区域涵盖的均为已编码的区域,避免对当前图块编解码时出现依据不同参考图块的情况,提升待编码视频帧的编码质量。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供了一种视频编码方法,所述方法包括:
从待编码视频帧中确定待编码的当前图块,所述当前图块处于目标编码树单元CTU中,所述待编码视频帧包括N*M个CTU,所述目标CTU位于所述待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,所述并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N;
根据所述编码处理延迟,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,所述右边界在第i-1行CTU的已编码CTU中,在所述待编码视频帧中,第i-1行CTU位于第i行CTU的上方;
在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
另一方面,本申请实施例提供了一种视频解码方法,所述方法包括:
从已编码视频帧中确定待解码的当前图块,所述当前图块处于目标编码树单元CTU中,所述已编码视频帧包括N*M个CTU,所述目标CTU位于所述已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,所述并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N;
根据所述解码处理延迟,确定所述当前图块的搜索区域在所述已解码视频帧中的右边界,所述右边界在第i-1行CTU的已解码CTU中,在所述已编码视频帧中,第i-1行CTU位于第i行CTU的上方;
在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
又一方面,本申请实施例提供了一种视频编码装置,所述装置包括:第一确定模块、第二确定模块、第三确定模块及编码模块;
所述第一确定模块,用于从待编码视频帧中确定待编码的当前图块,所述当前图块处于目标编码树单元CTU中,所述待编码视频帧包括N*M个CTU,所述目标CTU位于所述待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,所述并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N;
所述第二确定模块,用于根据所述编码处理延迟,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,所述右边界在第i-1行CTU的已编码CTU中,在所述待编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述编码模块,用于使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
又一方面,本申请实施例提供了一种视频解码装置,所述装置包括:第一确定模块、第二确定模块、第三确定模块及解码模块;
所述第一确定模块,用于从已编码视频帧中确定待解码的当前图块,所述当前图块处于目标编码树单元CTU中,所述已编码视频帧包括N*M个CTU,所述目标CTU位于所述已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,所述并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N;
所述第二确定模块,用于根据所述解码处理延迟,确定所述当前图块的搜索区域在所述已解码视频帧中的右边界,所述右边界在第i-1行CTU的已解码CTU中,在所述已编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述解码模块,用于使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
又一方面,本申请实施例提供了一种计算机设备,计算机设备包括处理器以及存储器:
存储器用于存储计算机程序;
处理器用于根据计算机程序执行以上方面所述的方法。
又一方面。本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,计算机程序用于执行以上方面所述的方法。
又一方面,本申请实施例提供了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得计算机设备执行以上方面所述的方法。
由上述技术方案可以看出,在通过并行编码处理的方式对待编码视频帧进行帧内编码的过程中,待编码视频帧被划分为N*M个CTU,待编码的当前图块所在的目标CTU处于第i行CTU中,且该第i行CTU为并行编码处理的K行CTU中的一行。在对当前图块进行帧内编码时,当前图块的搜索区域会涵盖第i-1行CTU中的部分区域,且相对于当前图块在第i-1行CTU向右延伸一定长度。虽然并行编码处理的机制是相邻行CTU的编码进度并不同步,第i-1行CTU的编码进度比第i行CTU的编码进度更快,两者相差为编码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中编码结果不确定的区域。如果从搜索区域中匹配到的参考图块处于该不确定的区域,很可能导致解码时所依据的参考图块与编码时不一致,解码出错误的结果,影响待编码视频帧的质量。为此,在确定搜索区域的右边界时,根据编码处理延迟作为确定依据,将该右边界确定在第i-1行CTU的已编码CTU中,以确保搜索区域涵盖的均为已编码的区域,避免了对当前图块编解码时出现依据不同参考图块的情况,有效提升了待编码视频帧的编码质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种视频编码方法的场景示意图;
图2为本申请实施例提供的一种视频编码方法的流程图;
图3为一种编码过程的示意图;
图4为本申请实施例提供的一种WPP编码过程的示意图;
图5为本申请实施例提供的又一种WPP编码过程的示意图;
图6为本申请实施例提供的一种基于第一位置信息确定待定右边界的示意图;
图7为本申请实施例提供的又一种基于第一位置信息确定待定右边界的示意图;
图8为本申请实施例提供的一种基于第二位置信息确定待定右边界的示意图;
图9为本申请实施例提供的又一种基于第二位置信息确定待定右边界的示意图;
图10为本申请实施例提供的一种确定右边界的示意图;
图11为本申请实施例提供的又一种确定右边界的示意图;
图12为本申请实施例提供的一种确定参考图块的示意图;
图13为本申请实施例提供的一种视频编码方法的流程图;
图14为本申请实施例提供的一种视频编码装置的装置示意图;
图15为本申请实施例提供的一种视频解码装置的装置示意图;
图16为本申请实施例提供的一种终端设备的结构图;
图17为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
在相关技术中,进行视频编解码的过程时可以采用WPP的方式进行,即将一个视频帧按照编码树单元(Coding Tree Unit,CTU)划分为若干行,对于多行CTU进行并行编码,且当前行相比上一行具有CTU的处理延迟,通过WPP进行视频编解码能够提高视频编解码的效率。
同时在进行视频编解码的过程中,可以采用帧内预测的方式进行,帧内预测指的是通过分析当前图块与参考图块之间的相关性,对当前图块进行编解码,以减少视频数据的冗余。在确定当前图块的参考图块时,需要确定参考图块的搜索区域,以将搜索区域作为该视频帧中的参考图块的搜索范围。可以在采用WPP进行视频编解码的前提下使用帧内预测的方式,提高视频编解码的效率。
在相关技术中确定参考图块的搜索范围的方式,不能够很好的适用于基于WPP方式进行视频编解码的过程中的帧内预测,会导致视频编解码得到的编码结果以及解码结果产生异常。
为此本申请实施例中提供了一种视频编解码方法和相关装置,可以根据编码处理延迟作为确定依据,将搜索区域的右边界确定在已编码CTU中,保证搜索区域涵盖的均为已编码的区域,避免对当前图块编解码时出现依据不同参考图块的情况,提升待编码视频帧的编码质量。
本申请实施例所提供的数据处理方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
本申请实施例提供的视频编解码的方案涉及云计算技术,基于云计算技术在视频发送端实现对待编码视频帧中的CTU进行并行编码处理,且在并行编码处理中相邻行的编码进度具有差异,通过对待编码视频帧进行编码实现视频的压缩,提高视频的传输效率。同时基于云计算技术在视频接收端对已编码视频帧中的中的CTU进行并行解码处理,实现对已编码视频帧的解压。
图1为本申请实施例提供的一种视频编码方法的场景示意图,其中前述的计算机设备为服务器。
当需要对视频进行编码时,需要通过服务器从待编码视频帧中确定出待编码的当前图块。如图1所示,待编码视频帧中包括N*M(其中N=6,M=4)个CTU,目标CTU位于待编码视频帧的第i行CTU中(其中i=3),同时该目标CTU位于并行编码处理的K行CTU中的第三行(其中K=3),在该图中并行编码处理的过程中相邻行的编码进度相差为编码处理延迟,该编码处理延迟为2个CTU。在图1的上方示出了当前图块,该当前图块位于目标CTU的右下方。由于采用WPP方式进行视频编码,可以保证在对当前图块进行编码时,该当前图块的左侧和上方的图块均已编码完成,故在确定搜索区域时仅需对右边界进行考量,根据编码处理延迟能够确定出当前图块对应的参考图块的搜索区域在待编码视频帧中的右边界,如图所示,确定出的右边界位于第i-1行CTU的已编码CTU中(其中i-1=2),且第i-1行位于第i行上方。
当确定出搜索区域的右边界后,即可得到针对当前图块的完整搜索区域,基于该搜索区域对参考图块进行搜索,如图所示该参考图块位于第i-1行的第一个CTU中,使用该参考图块对当前图块进行编码,在编码完成后,将下一待编码的图块作为当前图块。如图1的下方所示,下一待编码的图块位于第i行的第三个CTU中,将该图块作为当前图块重复上述步骤,直至对待编码视频帧完成编码得到已编码视频帧。过程中通过将编码处理延迟作为确定依据,可以将右边界确定在第i-1行CTU的已编码CTU中,确保当前图块对应的搜索区域中均为已编码的区域,避免出现当前图块进行编解码时参考图块不一致,导致编解码质量较差的情况。
图2为本申请实施例提供的一种视频编码方法的流程图,该方法可以由计算机设备执行,在本实施例中,以该计算机设备是服务器为例进行说明。
S201:从待编码视频帧中确定待编码的当前图块。
随着视频分辨率的提高对应的视频的存储空间较大,若直接将原始视频进行传输,将会大大影响视频的传输效率。故相关技术中,在进行视频传输时,一般采用对原始视频的视频帧(即待编码视频帧)进行视频编码的方式压缩视频,传输压缩完成得到的已编码视频帧。其中,待编码视频帧可以为实时采集的视频帧,用于即时通信(如:直播、云游戏等),还可以为事先存储的视频对应的视频帧。
CTU是待编码视频帧中的一个独立单元,在本申请实施例中用于进行帧内编码,CTU通常为一个正方形区域,尺寸大小可以由视频帧的编解码需求确定,在此不作限定。图块是对视频帧进行编解码过程的基本单元,在CTU中包括图块,在对待编码视频帧进行编码时,需要对其中的图块进行编码。图块可以用编码单元(Coding Unit,CU)表示,CU可以进一步划分为预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)。其中CU的形状可以为正方形或矩形,尺寸大小同样可以由视频帧的编解码需求确定,在此不作限定。上述提到的当前图块指的是在待编码视频中的需要开始进行编码的图块。
在本申请实施例中通过WPP的方式对视频的待编码视频帧进行并行编码处理,待编码视频帧指的是未经过视频编码器处理的原始视频帧。在实时采集或事先存储的视频帧中包括多个待编码视频帧,在待编码视频帧中包括多个按照行列顺序排列的CTU。对待编码视频帧进行编码的过程为:从上到下逐行编码,从左向右逐个CTU依次编码。图3为一种编码过程的示意图,如图3所示,其中深灰色的部分为已编码的CTU,白色的部分为未编码的CTU,浅灰色的部分为正在编码的CTU。且图中白色的带箭头的虚线指示出了编码的顺序方向为从上到下逐行进行,以及从左到右依次进行。
WPP的编码方式与图3所示的方式存在一定差异,虽然也是从上到下逐行进行,以及从左到右依次进行,但是相邻行的编码进行存在差异,图4为本申请实施例提供的一种WPP编码过程的示意图,如图所示,与图3中的编码过程类似,其中深灰色的部分为已编码的CTU,白色的部分为未编码的CTU,浅灰色的部分为正在编码的CTU。且图中白色的带箭头的虚线指示出了编码的顺序方向为从上到下逐行进行,以及从左到右依次进行。区别在于:采用WPP会对多行CTU进行并行编码处理,且相邻行之间相差相同的编码进度,图中示意性的展示了采用WPP并行编码处理3行CTU,相邻行的编码进度相差2个CTU的情况。其中并行编码处理指的是针对待编码视频帧中的多行CTU同时进行编码处理,这里的“同时”并非各行CTU同时启动对该行从左数第一个CTU进行编码,而是在满足相邻行之间相差相同的编码进度的前提下,多行CTU可以同时进行各自行的CTU编码。
参见图1所示,当前图块处于目标CTU中,即当前图块的尺寸小于目标CTU的尺寸。待编码视频帧包括N*M个CTU,目标CTU位于待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N。其中编码处理延迟指的是在进行并行编码处理的过程中相邻行之间的CTU的编码进度的差值,该差值可以通过CTU来衡量,也可以根据像素数量来衡量。举例来说,假设相邻行之间的CTU的编码进度相差两个CTU,而一个CTU的尺寸为64*64像素,此时可以认为相邻行之间的CTU的编码进度的差值为128像素(即两个CTU的边长)。
图5为本申请实施例提供的又一种WPP编码过程的示意图,如图所示,在该并行编码处理中相邻行的编码进度相差2个CTU,其中CTU A表示正在编码的CTU,可以看出CTU A的左侧和正上方均为已编码的CTU,且CTU B、CTU C均为已编码的CTU。存在这样一种并行编码处理的情况:当CTU B完成编码时,CTU A立刻开始进行编码,而此时CTU B1以及CTU C1可能尚未开始进行编码,即CTU B1以及CTU C1均为未完成编码的CTU,在对CTU A进行编码时,CTU B1以及CTU C1由于未完成编码不能够作为CTU A的参考图块的搜索区域。
S202:根据所述编码处理延迟,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
当前图块的搜索区域指的是,对当前图块进行参考图块的搜索所涉及的在待编码视频帧中的区域范围。右边界指的是待编码视频帧的搜索区域中最右侧的边界,即当前图块的搜索区域所涵盖的范围中能够达到的最靠右的部分。
在本申请实施例中除了采用WPP对待编码视频帧中的多行CTU进行并行编码处理之外,还采用帧内预测的方式通过在搜索区域中确定当前图块的参考图块,在对当前图块进行编码时只需记载当前图块与参考图块之间的差异,基于帧内预测的方式可以提高对当前图块的压缩率,进而提高后续得到的已编码视频帧的传输效率。
由于采用WPP的方式对待编码视频帧进行编码,虽然并行编码处理的机制是相邻行CTU的编码进度并不同步,第i-1行CTU的编码进度比第i行CTU的编码进度更快,两者相差为编码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中编码结果不确定的区域。在使用帧内预测的方式为当前图块进行参考图块的搜索时,若在搜索区域中匹配到的参考图块并未完成编码(包括尚未开始编码和正在进行编码),此时将可能导致在解码时所依据的参考图块与编码时不一致的情况,影响视频的编解码质量。
在本申请实施例中需要同时基于WPP以及帧内预测的方式进行待编码视频帧的编码,帧内预测的过程中需要基于重建像素进行当前图块的编码。重建像素指的是已经完成编码的像素,与之相对的为原始像素,原始像素指的是未进行或未完成编码的像素。在待编码视频帧中图块由像素组成,由于在本申请中采用WPP的方式进行并行编码处理,在待编码视频帧的编码过程中存在同时具有重建像素以及原始像素的情况。其中重建像素由于已经完成编码故对应的编码结果是确定的,而原始像素由于未进行或未完成编码故对应的编码结果是不确定的。因此在基于第i-1行CTU中的信息对第i行CTU中的当前图块进行编码时,确定出的搜索区域可能延伸至第i-1行CTU中的未进行或未完成编码的像素部分所处区域(即编码结果不确定的区域)。
因此在使用帧内预测的方式,针对当前图块进行参考图块的搜索时,若在搜索区域中匹配到的并非完全由重建像素组成的图块作为参考图块,那么意味着在该参考图块中包括原始像素(即编码结果不确定的像素),此时对应的基于参考图块对当前图块进行编码,所得到的编码结果的准确性较低。
在本申请实施例中,针对待编码视频帧进行编码以及针对已编码视频帧进行解码的过程,均采用WPP以及帧内预测相结合的方式,且均为从上到下逐行进行,以及从左到右依次进行。在针对同一当前图块进行编码和解码时,由于编码和解码的速度可能存在差异,若在编码的过程中对当前图块进行编码的参考图块为未完成编码的图块,在解码的过程中对应确定出的参考图块可能与编码过程中的参考图块的位置不一致;或者对当前图块进行编码的参考图块中包括原始像素,而解码过程中确定出的参考图块中均为重建像素。上述两种情况均会导致在解码时所依据的参考图块与编码时不一致的情况,故会影响针对视频帧进行编解码的准确性。还需要说明的是,由于采用WPP的方式进行待编码视频帧的编码,即采用相邻行的编码进度相差为编码处理延迟的并行编码方式,能够使得在对当前图块进行编码时,该当前图块的左侧和上方的CTU均已编码完成(即当前图块的左侧和上方的CTU中均为重建像素,对应的编码结果均已确定),在进行搜索区域的确定时只需对待编码视频中的右边界进行确定。右边界的确定需要考虑编码处理延迟以及保证右边界位于已完成编码的CTU中,如此能够在一定程度上避免搜索区域中囊括未完成编码的CTU,导致待编码的当前图块受到未完成编码的CTU的影响出现编码错误的情况。当完成确定出搜索区域的右边界即完成当前图块对应的全部搜索范围的确定。
参见图1所示,在图1中根据编码处理延迟,确定出的当前图块搜索区域的右边界在第i-1行CTU的已编码CTU中。在本申请实施例中,待编码视频帧的第i-1行CTU位于第i行CTU的上方。
S203:在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块。
参考图块为与当前图块的像素相似度达到相似条件的已编码图块。其中像素相似度是用于衡量参考图块与当前图块的像素之间的相似程度的指标,相似条件是用于确定参考图块与当前图块相似的条件,举例来说可以将相似条件确定为参考图块与当前图块之间的像素一致程度达到80%。一般来说,参考图块与当前图块之间的像素相似度较高,即参考图块与当前图块之间的像素差异较小。如此能够便于在进行对当前图块的编码时,仅需记载参考图块与当前图块之间的差异,大大提高待编码视频帧的编码效率,增加图块的压缩程度。
参考图块位于搜索区域内,一般来说,参考图块位于当前图块邻近的CTU中,原因在于,按照视频帧中的图像内容的排布规律,邻近的图块之间一般具有较高的相似性。当确定出搜索区域后,即可在搜索区域内进行针对当前图块的搜索,确定出该当前图块对应的参考图块。假设参考图块与当前图块的像素相似度达到的相似条件为参考图块与当前图块的一致程度达到85%,那么此时参考图块与当前图块之间的差异为15%,那么当后续使用参考图块对当前图块进行编码时,仅需记载15%的差异部分,能够在一定程度上提高针对当前图块进行编码的效率。
S204:使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
当在搜索区域内确定出当前图块对应的参考图块,则使用该参考图块对该当前图块进行编码,编码过程中可以记载当前图块与该参考图块的对应关系,以及该当前图块与该参考图块之间的差异。当完成该当前图块的编码后,将待编码视频帧中的下一图块作为当前图块继续进行搜索区域的确定,参考图块的搜索以及编码等过程,直至对待编码视频帧中的全部图块编码完成,得到已编码视频帧。
由上述技术方案可以看出,在通过并行编码处理的方式对待编码视频帧进行帧内编码的过程中,待编码视频帧被划分为N*M个CTU,待编码的当前图块所在的目标CTU处于第i行CTU中,且该第i行CTU为并行编码处理的K行CTU中的一行。在对当前图块进行帧内编码时,当前图块的搜索区域会涵盖第i-1行CTU中的部分区域,且相对于当前图块在第i-1行CTU向右延伸一定长度。虽然并行编码处理的机制是相邻行CTU的编码进度并不同步,第i-1行CTU的编码进度比第i行CTU的编码进度更快,两者相差为编码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中编码结果不确定的区域。如果从搜索区域中匹配到的参考图块处于该不确定的区域,很可能导致解码时所依据的参考图块与编码时不一致,解码出错误的结果,影响待编码视频帧的质量。为此,在确定搜索区域的右边界时,根据编码处理延迟作为确定依据,将该右边界确定在第i-1行CTU的已编码CTU中,以确保搜索区域涵盖的均为已编码的区域,避免了对当前图块编解码时出现依据不同参考图块的情况,有效提升了待编码视频帧的编码质量。
前述S202中提到“根据所述编码处理延迟,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界”,在确定右边界的过程中可以考虑通过不同的依据进行,该依据可以包括以下两种,一种为编码增益和复杂度,另一种为编码处理延迟,基于上述两种考量依据,可以确定两种不同的确定右边界的方式,在实际应用中根据实际情况进行择一选用。因此,在一种可能的实现方式中,确定右边界的方法可以为:
A1:根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述搜索区域在所述待编码视频帧中的第一待定右边界。
编码增益指的是通过对待编码视频帧中当前图块的编码所达到的压缩比或性能提升,在本申请实施例中压缩比或性能提升可以等价于针对当前图块所搜索到的参考图块的质量较高(即与当前图块的像素相似度较高)。在实际应用中,编码增益可以通过编码前后的视频文件的大小和传输速度等指标进行评估。
复杂度指的是在对待编码视频帧中当前图块的编码所需的计算资源和时间,当搜索区域大时对应的复杂度越大,进行编码所需的计算资源和时间也就更多;当搜索区域小时对应的复杂度越小,进行编码所需的计算资源和时间也就越小。一般来说,当复杂度较低时对应的编码效率较高。
在进行搜索区域的确定时,需要同时权衡编码增益以及复杂度这两个维度的因素。当搜索区域的范围较大时,对应的编码增益可能会有所提升(有利于找到质量更好的参考图块进行当前图块的编码),对应的复杂度也会提高(对应消耗的计算资源也会增多),也就会影响编码的效率;当搜索范围较小时,可能会损失一定的编码增益,但对应的复杂度也更低。因此需要结合不同的场景,对编码增益以及复杂度有所侧重,在此不再赘述。
A1所提到的确定第一待定右边界的方法,是根据编码增益和复杂度,以及当前图块在待编码视频帧中的第一位置信息进行确定。在对待编码视频帧进行编码的过程中将待编码视频帧的左上角作为坐标原点,当前图块在待编码视频帧中的第一位置信息可以为该当前图块左上角对应的坐标信息,该坐标信息中可以包括x轴坐标和y轴坐标。即在考虑编码增益和复杂度的前提下,根据当前图块的第一位置信息确定出第一待定右边界。通过当前图块的第一位置信息能够明确出当前图块在待编码视频帧中的位置,再结合编码增益和复杂度的考量能够确定出针对当前图块的搜索区域的大小,该搜索区域的大小取决于第一待定右边界的所在位置。同时搜索区域是提供给当前图块用作参考图块的搜索的,故需要结合当前图块的第一位置信息确定搜索区域的位置,以及根据编码增益和复杂度确定出的搜索区域的大小,得到第一待定右边界。
A2:根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界。
编码处理延迟指的是在WPP编码处理方式下,相邻行之间的编码进度的差异。在确定第二待定右边界的过程中,针对目标CTU在待编码视频帧中的第二位置信息以及编码处理延迟进行考量。可以看出A2中所提到的确定第二待定右边界的方法与A1中所提到的确定第一待定右边界的方法之间的差异在于,A2的确定第二待定右边界的方法中,需要对编码处理延迟进行考量,根据编码处理延迟确定出第二待定右边界,使得第二待定右边界位于已编码CTU中,而编码处理延迟是基于CTU进行确定的,具体的延迟的数值可以为固定的像素数量或以单个CTU的宽度为单位确定。故在对第二待定右边界的确定时,不需要考量当前图块在目标CTU中的位置,结合目标CTU的情况进行确定即可。在第二待定右边界的方式下,确定过程相较A1来说更加简单。
A3:通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
在确定当前图块的搜索区域在待编码视频帧中的右边界时,第一待定右边界和第二待定右边界可以根据实际情况择一选择,同时还要结合编码增益和复杂度进行考量。
其中A1的方式是基于当前图块的信息进行右边界的确定,A2的方式是基于目标CTU的信息进行右边界的确定。针对不同的考量依据,可以从第一待定右边界和第二待定右边界中确定出当前图块的搜索区域的右边界。
举例来说,当待编码视频帧中的色彩复杂度较高时,可以倾向于选择A1中基于当前图块的信息进行右边界确定的方式。其原因在于,目标CTU与当前图块相比尺寸更大,也可以理解为目标CTU与当前图块相比划分粒度更大。当待编码视频帧中的色彩复杂度较高时,对应的图块的划分粒度较小,即在待编码视频帧中的单位搜索区域内将容纳较多的图块。此时通过考虑编码增益和复杂度,以及当前图块在待编码视频帧中的第一位置信息确定出的第一待定右边界,相较于根据目标CTU的信息确定出的第二待定右边界来说,更加符合当前图块的搜索区域的需求。即当待编码视频帧中图块密度较高时,当前图块倾向于在较小的搜索区域内即可确定出对应的参考图块(因为在较小的搜索区域即包含了较多的图块),故以当前图块的信息作为参照进行右边界的确定(即A1),足以满足搜索需求。
当待编码视频帧中的图块色彩复杂度较低时,可以倾向于选择A2中根据目标CTU的信息进行右边界确定的方式。其原因在于,当待编码视频帧中的色彩复杂度较低时,对应的图块的划分粒度较大,即在待编码视频帧中的单位搜索区域内将容纳较少的图块。此时根据目标CTU的信息确定出的第二待定右边界相较于根据当前图块的信息确定出的第一待定右边界来说,更加符合当前图块的搜索区域的需求。即当待编码视频帧中图块密度较低时,为了保证搜索到的参考图块的质量,需要保证搜索的图块的数量达到一定数量,即此时当前图块倾向于在较大的搜索区域内确定出对应的参考图块,故将目标CTU的信息作为参照进行右边界的确定(即A2),以满足当前图块的搜索需求。
在一种可能的实现方式中,当第二待定右边界相较于第一待定右边界距离当前图块的距离更近时,该第二待定右边界以及第一待定右边界均位于已编码CTU中,此时若想提高编码增益,可以考虑相较第二待定右边界而言适当扩大搜索区域。扩大搜索区域的方式可以为计算第一待定右边界和第二待定右边界的平均值,将该平均值作为当前图块的搜索区域在待编码视频帧中的右边界。
通过上述提供的一种确定右边界的方法,提供了两种不同的确定待定右边界的维度,不同的维度对应考量的内容不同,针对前述两种待定右边界的确定方式,再结合具体的应用场景、编码增益以及复杂度的综合考量,能够确定出在不同场景下的右边界的确定方式,满足当前图块的搜索区域的右边界的确定需求。
前述A1中提到“根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述搜索区域在所述待编码视频帧中的第一待定右边界”,第一待定右边界的确定过程需要基于当前图块在待编码视频帧中的第一位置信息,按照编码过程的规律向右延伸一定的像素数量得到。在一种可能的实现方式中,第一待定右边界的确定方式如下:首先根据编码增益和复杂度,确定搜索区域可向右延伸的程度系数。然后基于程度系数和当前图块的宽度,确定搜索区域相对于第一位置信息的第一向右延伸像素数量。最后根据第一向右延伸像素数量,确定第一待定右边界。
其中程度系数是权衡编码增益和复杂度后得到的,该程度系数用于确定第一待定右边界的确定中搜索区域可向右延伸的程度,具体的程度系数可以由本领域技术人员根据实际情况及应用场景进行设定,在此不作限定,举例来说,在下一代视频编码标准参考软件平台(Enhanced Compression Model,ECM)中,程度系数为5。
当确定出程度系数,需要基于程度系数和当前图块的宽度,确定出搜索区域相对于第一位置信息的第一向右延伸像素数量。其中当前图块的第一位置信息可以指当前图块的左上端点在x轴上的位置,图块一般可以为正方形或矩形。其中第一向右延伸像素数量指的是相对于当前图块的第一位置信息,向右延伸的像素数量。
假设当前图块在待编码视频帧中的第一位置信息为(BlkX,BlkY),当前图块的宽度为BlkW,高度为BlkH,此时第一待定右边界HorMax1可以通过如下公式计算得到:
HorMax1=BlkX+a*BlkW
其中a为程度系数,由上述公式可知,第一待定右边界的确定与当前图块的大小以及位置有关。
示例1:
图6为本申请实施例提供的一种基于第一位置信息确定待定右边界的示意图,假设a=5,使用WPP进行编码的相邻行之间的编码进度相差为2个CTU,目标CTU的大小是64*64像素,当前图块的第一位置信息为(96,96),当前图块的大小为32*32像素,即当前图块的长度和宽度均为32,此时第一向右延伸像素数量按照上述公式进行计算得到:96+5*32=256,如图所示,该确定出的第一待定右边界位于未完成编码的CTU中。因此在本申请实施例中除了采用第一待定右边界确定当前图块的搜索区域的右边界之外,设置了基于编码处理延迟和目标CTU在待编码视频帧中的第二位置信息,确定搜索区域在待编码视频帧中的第二待定右边界。当第一待定右边界不满足位于已编码的CTU的条件时,考虑替换为第二待定右边界。
当然,在本申请实施例中存在适用于将第一待定右边界作为当前图块的搜索区域的右边界的场景。一般来说,在目标CTU的大小不变,且当前图块的大小较小时,对应计算出的第一向右延伸像素数量确定出的第一待定右边界将位于已编码的CTU中。
示例2:
图7为本申请实施例提供的又一种基于第一位置信息确定待定右边界的示意图。假设a=5,使用WPP进行编码的相邻行之间的编码进度相差为2个CTU,目标CTU的大小是64*64像素,当前图块的第一位置信息为(80,80),当前图块的大小为16*16像素,即当前图块的长度和宽度均为16,此时第一向右延伸像素数量按照上述公式进行计算得到:80+5*16=160,如图所示,该确定出的右边界位于已编码的CTU中。即第一待定右边界满足位于已编码的CTU的条件时,可以作为当前图块的右边界的待定右边界。
通过上述两个例子可知,当根据编码增益和复杂度,以及当前图块在待编码视频帧中的第一位置信息,确定搜索区域在所述待编码视频帧中的第一待定右边界的过程中,需要考虑到当前图块的划分粒度,该划分粒度体现在当前图块的宽度的大小。当前图块的宽度较大时,对应的当前图块的划分粒度较大;当前图块的宽度较小时,对应的当前图块的划分粒度较小。参见上述例子可知,相对于宽度为32的当前图块而言,宽度为16的当前图块的划分粒度较大。将第一待定右边界确定为当前图块的搜索区域的右边界,需要建立在当前图块的划分粒度较小的前提下。
即,当前图块的划分粒度会影响编码增益和复杂度的侧重权衡,当前图块的划分粒度可以通过当前图块的大小确定,举例来说,假设当前图块的大小为4*4像素或16*16像素,其中4*4像素的当前图块的划分粒度小于16*16像素的当前图块的划分粒度。
当前图块的划分粒度会影响到第一待定右边界的确定,前述提到在采用WPP进行编码的前提下,第一待定右边界的确定可以理解为搜索区域的确定,若当前图块的划分粒度较小,对应的第一待定右边界可以确定在较为靠近当前图块的位置。其原因在于,当前图块的划分粒度较小时,意味着待编码视频帧中的图块数量较多,在较小的搜索区域内即可容纳较多的图块,当编码需求一定时,在该搜索区域内足以使得当前图块确定参考图块,因此不需要通过大量扩大搜索区域的方式,增加可搜索的图块数量。
若当前图块的划分粒度较大,对应的第一待定右边界可以确定为较为远离当前图块的位置。其原因在于,当前图块的划分粒度较大时,意味着待编码视频帧中的图块数量较少,在较大的搜索区域内可能容纳的图块数量也不很多,当编码需求一定时,此时为了能够保证编码增益,需要考虑通过扩大搜索区域的方式,增加可搜索的图块数量。
通过上述提供的一种确定第一待定右边界的方法,根据确定出的程度系数以及当前图块的宽度可以确定出搜索区域相对于第一位置信息的第一向右延伸像素数量,根据第一向右延伸像素数量可得第一待定右边界。也就是说在进行第一待定右边界的确定过程中,需要考虑当前图块的尺寸,不同的当前图块的尺寸将影响到第一待定右边界作为当前图块的搜索区域右边界的可行性。
前述A2中提到“根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界”,第二待定右边界的确定过程需要基于目标CTU的第二位置信息,按照编码过程的规律向右延伸一定的像素数量得到。在一种可能的实现方式中,第二待定右边界的确定方式如下:首先确定编码处理延迟,确定搜索区域相对于第二位置信息的第二向右延伸像素数量。然后根据第二向右延伸像素数量,确定第二待定右边界。
编码处理延迟指的是在WPP下进行并行编码处理时,相邻行CTU的编码进度的差距,在本申请实施例中编码处理延迟可以为1个CTU或2个CTU。当确定出编码处理延迟,可以基于编码处理延迟、目标CTU的第二位置信息确定出搜索区域相对于该第二位置信息的第二向右延伸像素数量,该第二向右延伸像素数量指的是相对于目标CTU的第二位置信息,向右延伸的像素数量。
假设目标CTU在待编码视频帧的第二位置信息为(ctu_x_cur,ctu_y_cur),编码处理延迟为wpp_delay=2个CTU,一个CTU的宽度为ctu_width。此时第二待定右边界HorMax2可以通过如下公式计算得到:
HorMax2=ctu_x_cur+ctu_width*wpp_delay
由上述公式可知,第二待定右边界的确定与目标CTU的大小即位置有关。
示例3:
图8为本申请实施例提供的一种基于第二位置信息确定待定右边界的示意图,假设使用WPP进行编码的相邻行之间的编码进度相差为2个CTU,目标CTU的大小是64*64像素,目标CTU的第二位置信息为(64,64),目标CTU的宽度为64像素,此时第二向右延伸像素数量按照上述公式进行计算得到:64+2*64=192,如图所示,该确定出的第二待定右边界位于已编码的CTU内,满足第二待定右边界位于已编码的CTU的条件,能够作为当前图块的右边界的待定右边界。
示例4:
图9为本申请实施例提供的又一种基于第二位置信息确定待定右边界的示意图,假设使用WPP进行编码的相邻行之间的编码进度相差为1个CTU,目标CTU的大小是64*64像素,目标CTU的第二位置信息为(64,64),目标CTU的宽度为64像素,此时第二向右延伸像素数量按照上述公式进行计算得到:64+1*64=128,如图所示,该确定出的第二待定右边界位于已编码的CTU内,满足第二待定右边界位于已编码的CTU的条件,能够作为当前图块的右边界的待定右边界。
在进行第二待定右边界的过程中,可以看出编码处理延迟、目标CTU的位置以及大小即可,无需对当前图块的大小和位置进行考虑,计算的过程较为简单,且无论当前图块的划分粒度较大或较小,均能够保证确定出的第二待定右边界位于已编码的CTU的条件,能够作为当前图块的搜索区域的右边界的待定右边界。
通过上述提供的一种确定第二待定右边界的方法,根据目标CTU的第二位置信息以及编码处理延迟即可确定第二向右延伸像素数量,基于第二向右延伸像素数量可得第二待定右边界。在第二待定右边界的确定方法中,无需考虑当前图块的划分粒度,且能够保证第二待定右边界位于已编码的CTU中,在进行第二待定右边界的确定时,确定方法简单且能避免基于第二待定右边界确定的搜索区域内包含未完成编码的CTU的情况,保证编码的准确性。
前述A3中提到“通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界”,在前述介绍中根据待编码视频帧的情况不同,对右边界的确定进行了概括性的介绍。同时对于第一待定右边界以及第二待定右边界的确定方法进行了介绍,其中第一待定右边界存在场景的局限性,在实际应用的过程中可以基于可量化的方式,从第一待定右边界和第二待定右边界中确定出当前图块的搜索区域的右边界。因此,在一种可能的实现方式中,确定当前图块的搜索区域的右边界的方法为:根据第一待定右边界和第二待定右边界中距离当前图块最近的待定右边界,确定当前图块的搜索区域在待编码视频帧中的右边界。
在进行当前图块的搜索区域的右边界的确定时,可以事先将第一待定右边界和第二待定右边界均确定出来,然后进行与当前图块之间的距离的确定。具体的第一待定右边界以及第二待定右边界的确定方法在前述已经进行了详细介绍,在此不再赘述。根据确定出来的距离,将第一待定右边界和第二待定右边界中与当前图块之间的距离最近的,确定为当前图块的搜索区域在待编码视频帧中的右边界。
在本实施例确定当前图块的搜索区域在待编码视频帧中的右边界的方法中存在两种确定结果,一种为将第一待定右边界确定为搜索区域的右边界,另一种为将第二待定右边界确定为搜索区域的右边界。需要说明的是,第一待定右边界和第二待定右边界均位于已编码CTU中。
以前述示例1和示例3为例,假设a=5,使用WPP进行编码的相邻行之间的编码进度相差为2个CTU,目标CTU的大小是64*64像素(即宽度为64),目标CTU的第二位置信息为(64,64),当前图块的第一位置信息为(96,96),当前图块的大小为32*32像素,即当前图块的长度和宽度均为32。此时计算得到的第一向右延伸像素数量:96+5*32=256,第二向右延伸像素数量:64+2*64=192。图10为本申请实施例提供的一种确定右边界的示意图,如图所示,该确定出的第一待定右边界位于未完成编码的CTU中,确定出的第二待定右边界位于已编码的CTU内,满足第二待定右边界位于已编码的CTU的条件。此时需要将第二待定右边界相较于第一待定右边界而言距离当前图块最近,同时仅有第二待定右边界满足位于已编码的CTU的条件,因此需要将第二待定右边界作为当前图块的搜索区域在待编码视频帧中的右边界。
由上述例子可知,在当前图块的划分粒度较大时,对应的第一待定右边界存在位于未完成编码的CTU的可能。且当将第二待定右边界作为搜索区域的右边界时,意味着第二待定右边界相较第一待定右边界而言更加靠近当前图块。而第一待定右边界是根据编码增益和复杂度进行确定,选定第二待定右边界作为搜索区域的右边界,表明相比于第一待定右边界来说,需要通过牺牲编码增益的方式,降低搜索过程的复杂度,提高搜索效率。
以前述示例2和示例3为例,假设a=5,使用WPP进行编码的相邻行之间的编码进度相差为2个CTU,目标CTU的大小是64*64像素(即宽度为64),目标CTU的第二位置信息为(64,64),当前图块的第一位置信息为(80,80),当前图块的大小为16*16像素,即当前图块的长度和宽度均为16。此时第一向右延伸像素数量:80+5*16=160,第二向右延伸像素数量:64+2*64=192。图11为本申请实施例提供的又一种确定右边界的示意图,如图所示,该确定出的第一待定右边界位于已完成编码的CTU中,确定出的第二待定右边界位于已编码的CTU内,即第一待定右边界以及第二待定右边界均满足位于已编码的CTU的条件。此时可以根据第一待定右边界以及第二待定右边界与当前图块之间的距离,确定出当前图块的搜索区域的右边界,可以看出第一待定右边界与当前图块间的距离小于第二待定右边界与当前图块间的距离,故将第一待定右边界作为当前图块的搜索区域在待编码视频帧中的右边界。
其中第一待定右边界是根据编码增益和复杂度进行确定,当将第一待定右边界作为搜索区域的右边界时,意味着第一待定右边界相较第二待定右边界而言更加靠近当前图块。此时选择第一待定右边界能够同时平衡编码增益和复杂度,相比第二待定右边界而言,能够避免搜索区域扩大带来的搜索过程复杂度提高,进而提高搜索效率。一般来说,扩大搜索区域能够增加编码增益,同时会导致复杂度提高。
在本申请实施例中确定右边界HorMax的方式可以基于以下公式进行:
HorMax=min(BlkX+a*BlkW,ctu_x_cur+ctu_width*wpp_delay)
其中,编码处理延迟为wpp_delay,一个CTU的宽度为ctu_width,目标CTU在待编码视频帧的第二位置信息为(ctu_x_cur,ctu_y_cur),当前图块在待编码视频帧中的第一位置信息为(BlkX,BlkY),当前图块的宽度为BlkW,高度为BlkH,a为程度系数。该公式中同时包括第一向右延伸像素数量以及第二向右延伸像素数量的确定方式(即第一待定右边界和第二待定右边界的确定方式),在对当前图块的搜索区域的右边界进行确定时,将第一待定右边界和第二待定右边界中距离当前图块最近的待定右边界作为搜索区域的右边界。
结合前述提到的待编码视频帧的不同情况,当将第一待定右边界确定为当前图块的搜索区域的右边界时,对应的待编码视频帧的图块色彩复杂度较高,即当前图块的划分粒度较小;当将第二待定右边界确定为当前图块的搜索区域的右边界时,待编码视频帧中的图块色彩复杂度较低,即当前图块的划分粒度较小。
通过上述提供的一种当前图块的搜索区域的右边界的确定方法,将第一待定右边界和第二待定右边界中距离当前图块最近的,作为当前图块的搜索区域的右边界。根据距离最近这一可量化的确定方式,能够适用于两种不同的待编码视频帧的实际情况,根据当前图块的划分粒度适应性的选择并确定出较优的搜索区域的右边界。
前述提到“确定当前图块的搜索区域在待编码视频帧中的右边界”,当将第二待定右边界为距离当前图块最近的待定右边界时,对应的待编码视频帧中的图块色彩复杂度较低,即当前图块的划分粒度较小,此时对于编码的精度要求不太高,若具有进一步加快编码速度的需求,可以考虑进一步缩小搜索区域。因此,在一种可能的实现方式中,基于第二待定右边界确定右边界的方法为:将第二待定右边界向左移动固定像素长度后作为当前图块的搜索区域在待编码视频帧中的右边界。
之所以将第二待定右边界向左移动,是因为在本申请实施例中的编码过程遵循从上到下逐行编码,从左向右逐个CTU依次编码的方式。当将第二待定右边界向左移动时意味着对当前图块的搜索区域进行缩小,当将第二待定右边界向右移动时意味着对当前图块的搜索区域进行扩大。
在本申请实施例中采用对第二待定右边界进行移动固定像素长度的方式确定当前图块的搜索区域在待编码视频帧中的右边界,事实上除了移动固定像素长度之外,对第二待定右边界进行移动的方式还可以为:移动随机像素长度、在移动过程中进行像素长度计算,基于不同图块的情况移动不同像素长度。
之所以选择对第二待定右边界进行移动固定像素长度的方式,是因为采用移动随机像素长度的方式确定当前图块的搜索区域在待编码视频帧中的右边界的方式,当待编码视频帧完成编码得到已编码视频帧,在针对已编码视频帧进行解码时,由于编码过程中的当前图块的右边界是随机确定的,在针对该已编码的当前图块进行解码时,无法对于右边界进行准确确定,故会导致针对同一图块在编码和解码过程中确定出的参考图块不一致的情况,影响编解码的效率。
而采用在移动过程中进行像素长度计算,基于不同图块的情况移动不同像素长度的方式,虽然右边界是能够确定的,但是在已编码视频帧中还需要额外存储大量的移动过程中产生的像素长度,这会使得已编码视频帧中的数据量增大,与对待编码视频帧进行编码的原意相悖。
综上所述,可以看出移动随机像素长度,以及在移动过程中进行像素长度计算,基于不同图块的情况移动不同像素长度的方式,均不能很好的实现在满足提高编码效率的同时,降低传输数据量的要求。而当采用移动固定像素长度后作为所述当前图块的搜索区域在所述待编码视频帧中的右边界的方式,由于移动的像素长度是固定的,当针对该已编码的当前图块进行解码时,可以基于该固定像素长度对于右边界进行准确确定,故不会出现针对同一图块在编码和解码过程中确定出的参考图块不一致的情况。同时由于对于当前图块的搜索区域进行了缩小,能够提高对于参考图块的搜索效率,进而提高了对待编码视频帧的编码效率。
通过上述提供的一种确定右边界的方法,在待编码视频帧中的图块色彩复杂度较低的前提下,基于第二待定右边界向左移动固定像素长度的方式对当前图块的搜索区域的右边界进行重新确定,能够在缩小当前图块的搜索区域,提高编码效率的同时,使得对完成编码的待编码视频帧(即已编码视频帧)进行解码时,能够依据该固定像素长度进行准确解码,在一定程度上保证了编解码的准确性。
前述S203中提到“在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块”,当基于当前图块在搜索区域内进行针对当前图块的参考图块的搜索时,由于当前图块为未编码图块,而参考图块为已编码图块,此时确定出的当前图块对应的参考图块将会出现不准确的情况。故为了解决这一问题,在进行针对当前图块的参考图块的搜索时,可以考虑采用当前图块所邻近的已编码部分代替当前图块进行参考图块的搜索。因此,在一种可能的实现方式中,确定参考图块的方式为:
B1:在邻接所述当前图块的已编码区域中确定表征所述当前图块的第一已编码模板。
第一已编码模板是与当前图块邻接的且已完成编码的区域,由于该第一已编码模板与当前图块的位置紧邻,在待编码视频帧中根据图像的像素分布规律,一般临近的图块之间的像素差异较小。故邻接的图块能够代替原本图块进行参考图块的搜索,即第一已编码模板能够代替当前图块进行参考图块的搜索。同时由于第一已编码模板与参考图块一致均完成了编码,且第一已编码模板与当前图块具有较高的一致性,因此使用第一已编码模板代替当前图块进行参考图块的搜索,能够具有较好的效果。
除此之外,当前图块和第一已编码模板之间相对位置关系为预设关系。这里预设关系与对待编码视频帧进行编码的方式具有一定的关系,当编码方式为从上到下逐行编码,从左向右逐个CTU依次编码时,意味着在对当前图块进行编码时,该当前图块的左侧和上方的部分已经编码完成,而第一已编码模板需要与当前图块邻接且完成编码,故该第一已编码模板与当前图块的相对位置关系为:第一已编码模板位于当前图块所邻接的上方和左侧。
图12为本申请实施例提供的一种确定参考图块的示意图,参见图12所示,在图中包括R1、R2、R3以及R4这四块区域,且这四个区域均为已编码CTU。在进行参考图块的搜索时,可以按照一定的顺序对上述四个区域进行搜索,如从上到下,从左到右等,具体的搜索顺序在此不作限定。其中R1位于当前CTU内,R2位于当前CTU左上,R3位于当前CTU右上,R4位于当前CTU左侧,第一已编码模板为L型模板。
B2:根据所述第一已编码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已编码模板;
根据确定出的第一已编码模块在搜索区域内进行搜索,搜索的过程即为像素相似度匹配的过程。像素相似度指的是图块之间的像素的相似程度,而相似条件指的是认定两个图块之间为相似图块的条件,举例来说可以将相似条件设置为90%,此时意味着当搜索区域内存在与第一已编码模板之间的像素相似度满足90%的图块时,可以将其确定为第二已编码模板。
B3:根据所述预设关系和所述第二已编码模板确定所述参考图块。
根据前述提到的预设关系,即当前图块与第一已编码模板之间的相对位置关系,以及与第一已编码模板之间的像素相似度达到相似条件的第二已编码模板,能够确定出对应的参考图块。即参考图块与第二已编码模板之间的相对位置关系,与当前图块与第一已编码模板之间的相对位置关系一致。
在一种可能的实现方式中可以采用帧内模板匹配预测(Intra TemplateMatching Prediction,Intra TMP)的方式实现参考图块的确定。该方法通过在预定义的搜索区域内搜索与第一已编码模板相匹配的第二已编码模板来获得当前图块的参考图块,能够实现使用已经重建完成(已编码完成)的搜索区域的图块作为参考图块对当前图块进行编码。进而降低空间冗余度,提高编码质量,在该方法中,第一已编码模板在搜索区域进行像素相似度匹配,从搜索区域中确定像素相似度达到相似条件的第二已编码模板,其中的相似条件指的是第一已编码模板与第二已编码模板之间具有最小误差绝对值之和(Sum ofAbsolute Differences,SAD)。
通过上述提供的一种确定参考图块的方法,将与当前图块邻接的第一已编码模板作为代替未编码的当前图块,进行参考图块的搜索,能够避免由于当前图块未编码,在与已编码的参考图块进行像素相似度确定并匹配时,出现确定出的参考图块与实际编码后的当前图块之间的差异较大的问题,提高待编码视频帧编码的准确性。
前述提到编码处理延迟为采用WPP进行并行编码处理中相邻行的编码进度差异,为了保证对当前图块的搜索区域在搜索区域内对参考图块进行确定的准确性,需要使得编码处理延迟至少为一个CTU的边长之和。
原因在于,在本申请实施例提供的应用场景下,以采用WPP针对待编码视频帧中的多行CTU进行并行编码处理为前提,在WPP的处理方式下,要求相邻行之间的需要具备一定的编码处理延迟,即第i-1行CTU相对于第i行CTU而言,已编码CTU的数量更多,其中第i-1行CTU位于第i行CTU的的上方。一般来说,当前行相比上一行延迟一个或者多个CTU。延迟的CTU个数越多,编码(或解码时)的可用信息越多,压缩率就会更高。
要求编码处理延迟的原因是为了保证编码的正确性和效率,因为只有当相邻行之间的编码进度存在差异时,能够使得在对当前行CTU进行编码处理时,能够访问到上一行CTU中已编码的内容。与同步进行多行CTU的编码处理相比,存在编码处理延迟的并行编码处理方式,能够充分利用待编码视频帧中图块的空间相关性,确定出的已编码CTU的搜索区域供当前图块进行帧内预测。
具体来说,当编码处理延迟为至少一个CTU的边长之和时,在对当前图块进行编码时,该当前图块的左上方、左边、正上方的CTU是已经完成编码的,右上方CTU存在尚未完成编码的情况(即同时有已完成编码的图块和为完成编码的图块)。在对当前图块进行参考图块的搜索时,可以同时基于当前图块的左上方、左边、正上方以及右上方已完成编码的图块作为搜索区域进行参考图块的搜索,搜索区域的涵盖范围较大,能够保证搜索到的参考图块的质量,提高编码的效率。
通过上述提供的一种确定编码处理延迟的方法,将编码处理延迟确定为至少一个CTU的边长之和,能够使得在对当前图块进行编码时,对应的可作为搜索区域的范围较大,可以为参考图块的搜索提供更多的可选范围,由于可选范围增加对应能够在一定程度上保证当前图块搜索到的参考图块的质量,当参考图块的质量具有保证时,针对该当前图块进行编码的准确性也就有了保证,进而提高了待编码视频的编码准确性。
图13为本申请实施例提供的一种视频编码方法的流程图,该方法可以由计算机设备执行,在本实施例中,以该计算机设备是服务器为例进行说明。
S1301:从已编码视频帧中确定待解码的当前图块。
已编码视频帧指的是针对前述提到的待编码视频帧完成编码后得到的视频帧,在已编码视频帧的接收端需要对该已编码视频帧进行解码,以使得通过前述视频编码方法进行压缩编码的已编码视频帧恢复为可视化的视频。
在已编码视频帧中包括待解码的图块,在对已编码视频帧进行解码时,需要对其中的图块进行解码。对已编码视频帧的解码过程与对待编码视频帧的编码过程一致(均采用WPP和帧内预测的方式,且过程均为从上到下逐行进行,以及从左到右依次进行),区别仅在于在对已编码视频帧进行解码的解码对象是待解码的当前图块,而对待编码视频帧进行编码的编码对象是待编码的当前图块。
当前图块处于目标编码树单元CTU中,已编码视频帧包括N*M个CTU,目标CTU位于已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N。
S1302:根据所述解码处理延迟,确定所述当前图块的搜索区域在所述已解码视频帧中的右边界。
解码处理延迟指的是在进行并行解码处理的过程中相邻行之间的CTU的解码进度的差值,该差值可以通过CTU来衡量,也可以根据像素数量来衡量。当前图块的搜索区域指的是,对当前图块进行参考图块的搜索所涉及的在已编码视频帧中的区域范围。右边界指的是已编码视频帧的搜索区域中最右侧的边界,即当前图块的搜索区域所涵盖的范围中能够达到的最靠右的部分。
在对已编码视频帧进行解码的过程中,确定出的右边界在第i-1行CTU的已解码CTU中,且在已编码视频帧中第i-1行CTU位于第i行CTU的上方。之所以使得搜索区域的右边界确定在已解码CTU中,具体的原因与视频编码的过程一致,可以参见前述S201~S204中的描述,在此不再赘述。
S1303:在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块。
参考图块为与当前图块的像素相似度达到相似条件的已编码图块。参考图块的详细介绍可以参见前述S203中的内容,区别在于,在对待解码的当前图块进行解码时,对应的参考图块位于的搜索区域中包括已解码的图块,且该参考图块为已解码的图块。
S1304:使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
当在搜索区域内确定出当前图块对应的参考图块,则使用该参考图块对该当前图块进行解码,解码过程中可以基于当前图块与该参考图块的对应关系,以及所记载的该当前图块与该参考图块之间的差异进行。当完成该当前图块的解码后,将已编码视频帧中的下一图块作为当前图块继续进行搜索区域的确定,参考图块的搜索以及解码等过程,直至对已编码视频帧中的全部图块解码完成,得到已解码视频帧。
由上述技术方案可以看出,在通过并行解码处理的方式对已编码视频帧进行帧内解码的过程中,已编码视频帧被划分为N*M个CTU,待解码的当前图块所在的目标CTU处于第i行CTU中,且该第i行CTU为并行解码处理的K行CTU中的一行。在对当前图块进行帧内解码时,当前图块的搜索区域会涵盖第i-1行CTU中的部分区域,且相对于当前图块在第i-1行CTU向右延伸一定长度。虽然并行解码处理的机制是相邻行CTU的解码进度并不同步,第i-1行CTU的解码进度比第i行CTU的解码进度更快,两者相差为解码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中解码结果不确定的区域。如果从搜索区域中匹配到的参考图块处于该不确定的区域,很可能导致解码出错误的结果,影响已解码视频帧的质量。为此,在确定搜索区域的右边界时,根据解码处理延迟作为确定依据,将该右边界确定在第i-1行CTU的已解码CTU中,以确保搜索区域涵盖的均为已解码的区域,避免了对当前图块编解码时出现依据不同参考图块的情况,有效提升了已编码视频帧的解码质量。
前述S1302中提到“根据所述解码处理延迟,确定所述当前图块的搜索区域在所述已解码视频帧中的右边界”,在确定右边界的过程中可以考虑通过不同的依据进行,该依据可以包括以下两种,一种为解码增益和复杂度,另一种为解码处理延迟,基于上述两种考量依据,可以确定两种不同的确定右边界的方式,在实际应用中根据实际情况进行择一选用。因此,在一种可能的实现方式中,确定右边界的方法可以为:
C1:根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述搜索区域在所述已编码视频帧中的第一待定右边界。
解码增益指的是通过对已编码视频帧中当前图块的解码所达到的解压缩比或视频质量提升,在本申请实施例中解压缩比或视频质量提升可以等价于针对当前图块所搜索到的参考图块的质量较高(即与当前图块的像素相似度较高)。在实际应用中,解码增益可以通过解码前后的视频文件的大小和视频清晰度等指标进行评估。
复杂度指的是在对已编码视频帧中当前图块的解码所需的计算资源和时间,当搜索区域大时对应的复杂度越大,对应的进行解码所需的计算资源和时间也就更多;当搜索区域小时对应的复杂度越小,对应的进行解码所需的计算资源和时间也就越小。一般来说,当复杂度较低时对应的解码效率较高。
C1中的确定第一待定右边界的方法可以参见前述A1中的描述,区别在于,A1中是权衡编码增益和复杂度并结合待编码视频帧中的第一位置信息进行确定,而C1中是权衡解码增益和复杂度并结合已编码视频帧中的第一位置信息进行确定。
C2:根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界。
解码处理延迟指的是在基于WPP的解码处理方式下,相邻行之间的解码进度的差异。在确定第二待定右边界的过程中,针对目标CTU在已编码视频帧中的第二位置信息以及解码处理延迟进行考量。
C3:通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界。
在确定当前图块的搜索区域在已编码视频帧中的右边界时,第一待定右边界和第二待定右边界可以根据实际情况择一选择,同时还要结合解码增益和复杂度进行考量。
具体的C1~C3的介绍可以参见前述A1~A3的描述内容,C1~C3与A1~A3之间的差异仅在于,C1~C3为对已编码视频帧进行解码时确定右边界的过程,C1~C3为对待编码视频帧进行编码时确定右边界的过程。
通过上述提供的一种确定右边界的方法,提供了两种不同的确定待定右边界的维度,不同的维度对应考量的内容不同,针对前述两种待定右边界的确定方式,再结合具体的应用场景、解码增益以及复杂度的综合考量,能够确定出在不同场景下的右边界的确定方式,满足当前图块的搜索区域的右边界的确定需求。
前述C1中提到“根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述搜索区域在所述已编码视频帧中的第一待定右边界”,第一待定右边界的确定方式如下:首先根据解码增益和复杂度,确定搜索区域可向右延伸的程度系数。然后基于程度系数和当前图块的宽度,确定搜索区域相对于第一位置信息的第一向右延伸像素数量。最后根据第一向右延伸像素数量,确定第一待定右边界。
其中程度系数是权衡解码增益和复杂度后得到的,该程度系数用于确定第一待定右边界的确定中搜索区域可向右延伸的程度,具体的程度系数可以由本领域技术人员根据实际情况及应用场景进行设定,在此不作限定。
具体的第一待定右边界的确定方式与前述视频编码方法中提到的第一待定右边界的确定方式大体一致,区别在于,前述视频编码方法中提到的第一待定右边界的确定方式中的当前图块为待编码的图块,而当前第一待定右边界的确定方式中的当前图块为待解码的图块。
通过上述提供的一种确定第一待定右边界的方法,根据确定出的程度系数以及当前图块的宽度可以确定出搜索区域相对于第一位置信息的第一向右延伸像素数量,根据第一向右延伸像素数量可得第一待定右边界。也就是说在进行第一待定右边界的确定过程中,需要考虑当前图块的尺寸,不同的当前图块的尺寸将影响到第一待定右边界作为当前图块的搜索区域右边界的可行性。
前述C2中提到“根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界”,在一种可能的实现方式中,第二待定右边界的确定方式如下:首先确定编码处理延迟,确定搜索区域相对于第二位置信息的第二向右延伸像素数量。然后根据第二向右延伸像素数量,确定第二待定右边界。
解码处理延迟指的是在WPP下进行并行解码处理时,相邻行CTU的解码进度的差距,在本申请实施例中解码处理延迟与前述编码处理延迟一致均可以为1个CTU或2个CTU。当确定出解码处理延迟,可以基于解码处理延迟、目标CTU的第二位置信息确定出搜索区域相对于该第二位置信息的第二向右延伸像素数量,该第二向右延伸像素数量指的是相对于目标CTU的第二位置信息,向右延伸的像素数量。
具体的第二待定右边界的确定方式与前述视频编码方法中提到的第二待定右边界的确定方式大体一致,实现方式可以参见前面的描述,区别在于,前述视频编码方法中提到的第二待定右边界的确定方式中的目标CTU中包括待编码的当前图块,而当前第二待定右边界的确定方式中的目标CTU中包括待解码的当前图块。
通过上述提供的一种确定第二待定右边界的方法,根据目标CTU的第二位置信息以及编码处理延迟即可确定第二向右延伸像素数量,基于第二向右延伸像素数量可得第二待定右边界。在第二待定右边界的确定方法中,无需考虑当前图块的划分粒度,且能够保证第二待定右边界位于已编码的CTU中,在进行第二待定右边界的确定时,确定方法简单且能避免基于第二待定右边界确定的搜索区域内包含未完成编码的CTU的情况,保证编码的准确性。
前述C3中提到“通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界”,在一种可能的实现方式中,确定当前图块的搜索区域的右边界的方法为:根据第一待定右边界和第二待定右边界中距离当前图块最近的待定右边界,确定当前图块的搜索区域在已编码视频帧中的右边界。
具体的确定当前图块的搜索区域的右边界的过程,可以参见前述对待编码视频帧进行编码的过程中提到的确定当前图块的搜索区域的右边界的方法。两者间的区别在于,编码过程中的第一待定右边界的确定是基于编码增益和复杂度,以及当前图块在待编码视频帧中的第一位置信息确定的,第二待定右边界的确定是基于编码处理延迟和目标CTU在待编码视频帧中的第二位置信息。而解码过程中的第一待定右边界的确定是基于解码增益和复杂度,以及当前图块在已编码视频帧中的第一位置信息确定的,第二待定右边界的确定是基于解码处理延迟和目标CTU在已编码视频帧中的第二位置信息。
通过上述提供的一种当前图块的搜索区域的右边界的确定方法,将第一待定右边界和第二待定右边界中距离当前图块最近的,作为当前图块的搜索区域的右边界。根据距离最近这一可量化的确定方式,能够适用于两种不同的已编码视频帧的实际情况,根据当前图块的划分粒度适应性的选择并确定出较优的搜索区域的右边界。
前述提到“确定当前图块的搜索区域在已编码视频帧中的右边界”,当将第二待定右边界为距离当前图块最近的待定右边界时,对应的已编码视频帧中的图块色彩复杂度较低,即当前图块的划分粒度较小,此时对于解码的精度要求不太高,若具有进一步加快解码速度的需求,可以考虑进一步缩小搜索区域。因此,在一种可能的实现方式中,基于第二待定右边界确定右边界的方法为:将第二待定右边界向左移动固定像素长度后作为当前图块的搜索区域在已编码视频帧中的右边界。
具体的基于第二待定右边界确定右边界的过程,可以参见前述视频编码过程中的涉及基于第二待定右边界确定右边界的方法的介绍,两者之间的区别在于,在视频编码过程中第二待定右边界的确定是基于编码处理延迟以及目标CTU(包括待编码的图块)的第二位置信息进行的。而在当前视频解码过程中第二待定右边界的确定是基于解码处理延迟以及目标CTU(包括待解码的图块)的第二位置信息进行的。
通过上述提供的一种确定右边界的方法,在已编码视频帧中的图块色彩复杂度较低的前提下,基于第二待定右边界向左移动与编码过程一致的固定像素长度的方式对当前图块的搜索区域的右边界进行重新确定,能够在缩小当前图块的搜索区域,提高解码效率的同时保证解码的准确性。
前述S1303中提到“在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块”,当基于当前图块在搜索区域内进行针对当前图块的参考图块的搜索时,由于当前图块为未解码图块,而参考图块为已编码图块,此时确定出的当前图块对应的参考图块将会出现不准确的情况。故为了解决这一问题,在进行针对当前图块的参考图块的搜索时,可以考虑采用当前图块所邻近的已解码部分代替当前图块进行参考图块的搜索。
因此,在一种可能的实现方式中,确定参考图块的方式为:
D1:在邻接所述当前图块的已解码区域中确定表征所述当前图块的第一已解码模板。
第一已解码模板是与当前图块邻接的且已完成解码的区域,由于该第一已解码模板与当前图块的位置紧邻,在已编码视频帧中根据图像的像素分布规律,一般临近的图块之间的像素差异较小。故邻接的图块能够代替原本图块进行参考图块的搜索,即第一已解码模板能够代替当前图块进行参考图块的搜索。当前图块和第一已解码模板之间相对位置关系为预设关系。由于解码过程与编码过程一致,均采用WPP从上到下逐行进行,以及从左到右依次进行,故第一已解码模板与当前图块的相对位置关系为:第一已解码模板位于当前图块所邻接的上方和左侧。
D2:根据所述第一已解码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已解码模板。
D3:根据所述预设关系和所述第二已解码模板确定所述参考图块。
D2~D3的具体实现过程可以参见前述B2~B3中的介绍,两者之间的区别在于B2~B3是针对根据第二已编码模板确定参考图块,而D2~D3时根据第二已解码模板确定参考图块。
通过上述提供的一种确定参考图块的方法,将与当前图块邻接的第一已解码模板作为代替未解码的当前图块,进行参考图块的搜索,能够避免由于当前图块未解码,在与已解码的参考图块进行像素相似度确定并匹配时,出现确定出的参考图块与实际解码后的当前图块之间的差异较大的问题,提高已编码视频帧解码的准确性。
前述提到解码处理延迟为采用WPP进行并行解码处理中相邻行的解码进度差异,为了保证对当前图块的搜索区域在搜索区域内对参考图块进行确定的准确性,需要使得解码处理延迟至少为一个CTU的边长之和。
具体的解码处理延迟的确定过程可以参见前述确定编码处理延迟的方法,在此不再赘述。
通过上述提供的一种确定解码处理延迟的方法,将解码处理延迟确定为至少一个CTU的边长之和,能够使得在对当前图块进行解码时,对应的可作为搜索区域的范围较大,可以为参考图块的搜索提供更多的可选范围,由于可选范围增加对应能够在一定程度上保证当前图块搜索到的参考图块的质量,当参考图块的质量具有保证时,针对该当前图块进行解码的准确性也就有了保证,进而提高了已编码视频的解码准确性。
在前述图1-13所对应的实施例的基础上,图14为本申请实施例提供的一种视频编码装置的装置示意图,视频编码装置1400包括:第一确定模块1401、第二确定模块1402、第三确定模块1403及编码模块1404;
所述第一确定模块1401,用于从待编码视频帧中确定待编码的当前图块,所述当前图块处于目标编码树单元CTU中,所述待编码视频帧包括N*M个CTU,所述目标CTU位于所述待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,所述并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N;
所述第二确定模块1402,用于根据所述编码处理延迟,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,所述右边界在第i-1行CTU的已编码CTU中,在所述待编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块1403,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述编码模块1404,用于使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
在一种可能的实现方式中,所述第二确定模块1402用于:
根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述搜索区域在所述待编码视频帧中的第一待定右边界;
根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界;
通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
在一种可能的实现方式中,所述第二确定模块1402用于:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
在一种可能的实现方式中,所述第二确定模块1402用于:
根据编码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素数量;
根据所述第一向右延伸像素数量,确定所述第一待定右边界。
在一种可能的实现方式中,所述第二确定模块1402用于:
确定所述编码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素数量;
根据所述第二向右延伸像素数量,确定所述第二待定右边界。
在一种可能的实现方式中,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述第二确定模块1402用于:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述待编码视频帧中的右边界。
在一种可能的实现方式中,所述第三确定模块1403用于:
在邻接所述当前图块的已编码区域中确定表征所述当前图块的第一已编码模板,所述当前图块和所述第一已编码模板之间相对位置关系为预设关系;
根据所述第一已编码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已编码模板;
根据所述预设关系和所述第二已编码模板确定所述参考图块。
在一种可能的实现方式中,所述编码处理延迟为至少一个CTU的边长之和。
由上述提供的视频编码装置可以看出,在通过并行编码处理的方式对待编码视频帧进行帧内编码的过程中,待编码视频帧被划分为N*M个CTU,待编码的当前图块所在的目标CTU处于第i行CTU中,且该第i行CTU为并行编码处理的K行CTU中的一行。在对当前图块进行帧内编码时,当前图块的搜索区域会涵盖第i-1行CTU中的部分区域,且相对于当前图块在第i-1行CTU向右延伸一定长度。虽然并行编码处理的机制是相邻行CTU的编码进度并不同步,第i-1行CTU的编码进度比第i行CTU的编码进度更快,两者相差为编码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中编码结果不确定的区域。如果从搜索区域中匹配到的参考图块处于该不确定的区域,很可能导致解码时所依据的参考图块与编码时不一致,解码出错误的结果,影响待编码视频帧的质量。为此,在确定搜索区域的右边界时,根据编码处理延迟作为确定依据,将该右边界确定在第i-1行CTU的已编码CTU中,以确保搜索区域涵盖的均为已编码的区域,避免了对当前图块编解码时出现依据不同参考图块的情况,有效提升了待编码视频帧的编码质量。
图15为本申请实施例提供的一种视频解码装置的装置示意图,视频解码装置1500包括:第一确定模块1501、第二确定模块1502、第三确定模块1503及解码模块1504;
所述第一确定模块1501,用于从已编码视频帧中确定待解码的当前图块,所述当前图块处于目标编码树单元CTU中,所述已编码视频帧包括N*M个CTU,所述目标CTU位于所述已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,所述并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N;
所述第二确定模块1502,用于根据所述解码处理延迟,确定所述当前图块的搜索区域在所述已解码视频帧中的右边界,所述右边界在第i-1行CTU的已解码CTU中,在所述已编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块1503,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述解码模块1504,用于使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
在一种可能的实现方式中,所述第二确定模块1502用于:
根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述搜索区域在所述已编码视频帧中的第一待定右边界;
根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界;
通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界。
在一种可能的实现方式中,所述第二确定模块1502用于:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界。
在一种可能的实现方式中,所述第二确定模块1502用于:
根据解码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素值;
根据所述第一向右延伸像素值以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述第一待定右边界。
在一种可能的实现方式中,所述第二确定模块1502用于:
确定所述解码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素值;
根据所述第二向右延伸像素值和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述第二待定右边界。
在一种可能的实现方式中,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述第二确定模块1502用于:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述已编码视频帧中的右边界。
在一种可能的实现方式中,所述第三确定模块1503用于:
在邻接所述当前图块的已解码区域中确定表征所述当前图块的第一已解码模板,所述当前图块和所述第一已解码模板之间相对位置关系为预设关系;
根据所述第一已解码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已解码模板;
根据所述预设关系和所述第二已解码模板确定所述参考图块。
在一种可能的实现方式中,所述解码处理延迟为至少一个CTU的边长之和。
由上述提供的视频解码装置可以看出,在通过并行解码处理的方式对已编码视频帧进行帧内解码的过程中,已编码视频帧被划分为N*M个CTU,待解码的当前图块所在的目标CTU处于第i行CTU中,且该第i行CTU为并行解码处理的K行CTU中的一行。在对当前图块进行帧内解码时,当前图块的搜索区域会涵盖第i-1行CTU中的部分区域,且相对于当前图块在第i-1行CTU向右延伸一定长度。虽然并行解码处理的机制是相邻行CTU的解码进度并不同步,第i-1行CTU的解码进度比第i行CTU的解码进度更快,两者相差为解码处理延迟,但是一些情况下,当前图块的搜索区域会延伸到第i-1行CTU中解码结果不确定的区域。如果从搜索区域中匹配到的参考图块处于该不确定的区域,很可能导致解码出错误的结果,影响已解码视频帧的质量。为此,在确定搜索区域的右边界时,根据解码处理延迟作为确定依据,将该右边界确定在第i-1行CTU的已解码CTU中,以确保搜索区域涵盖的均为已解码的区域,避免了对当前图块编解码时出现依据不同参考图块的情况,有效提升了已编码视频帧的解码质量。
本申请实施例还提供了一种计算机设备,包括终端设备或服务器,前述的视频编码装置以及视频解码装置可以配置在该计算机设备中。下面结合附图对该计算机设备进行介绍。
若该计算机设备为终端设备,请参见图16所示,本申请实施例提供了一种终端设备,以终端设备为手机为例:
图16示出的是与本申请实施例提供的手机的部分结构的框图。参考图16,手机包括:射频(Radio Frequency,简称RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图16中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图16对手机的各个构成部件进行具体的介绍:
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触控面板1431以及其他输入设备1432。
显示单元1440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1440可包括显示面板1441。
手机还可包括至少一种传感器1450,比如光传感器、运动传感器以及其他传感器。
音频电路1460、扬声器1461,传声器1462可提供用户与手机之间的音频接口。
WiFi属于短距离无线传输技术,手机通过WiFi模块1470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器1480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行手机的各种功能和处理数据。
手机还包括给各个部件供电的电源1490(比如电池)。
在本实施例中,该终端设备所包括的处理器1480还用于执行本申请各实施例方法中的步骤。
若计算机设备为服务器,本申请实施例还提供一种服务器,请参见图17所示,图17为本申请实施例提供的服务器1500的结构图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于图17所示的服务器结构。
另外,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的方法。
本申请实施例还提供了一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得计算机设备执行上述实施例提供的方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:Read-only Memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。而且本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (29)
1.一种视频编码方法,其特征在于,所述方法包括:
从待编码视频帧中确定待编码的当前图块,所述当前图块处于目标编码树单元CTU中,所述待编码视频帧包括N*M个CTU,所述目标CTU位于所述待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,所述并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N;
根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述待编码视频帧中的第一待定右边界;
根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界;
通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,所述右边界在第i-1行CTU的已编码CTU中,在所述待编码视频帧中,第i-1行CTU位于第i行CTU的上方;
在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,包括:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
3.根据权利要求1所述的方法,其特征在于,所述根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述待编码视频帧中的第一待定右边界,包括:
根据编码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素数量;
根据所述第一向右延伸像素数量,确定所述第一待定右边界。
4.根据权利要求1所述的方法,其特征在于,所述根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界,包括:
确定所述编码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素数量;
根据所述第二向右延伸像素数量,确定所述第二待定右边界。
5.根据权利要求2所述的方法,其特征在于,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,包括:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述待编码视频帧中的右边界。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,包括:
在邻接所述当前图块的已编码区域中确定表征所述当前图块的第一已编码模板,所述当前图块和所述第一已编码模板之间相对位置关系为预设关系;
根据所述第一已编码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已编码模板;
根据所述预设关系和所述第二已编码模板确定所述参考图块。
7.根据权利要求1-5任意一项所述的方法,其特征在于,所述编码处理延迟为至少一个CTU的边长之和。
8.一种视频解码方法,其特征在于,所述方法包括:
从已编码视频帧中确定待解码的当前图块,所述当前图块处于目标编码树单元CTU中,所述已编码视频帧包括N*M个CTU,所述目标CTU位于所述已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,所述并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N;
根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述已编码视频帧中的第一待定右边界;
根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界;
通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界,所述右边界在第i-1行CTU的已解码CTU中,在所述已编码视频帧中,第i-1行CTU位于第i行CTU的上方;
在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
9.根据权利要求8所述的方法,其特征在于,所述通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界,包括:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界。
10.根据权利要求8所述的方法,其特征在于,所述根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述已编码视频帧中的第一待定右边界,包括:
根据解码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素值;
根据所述第一向右延伸像素值以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述第一待定右边界。
11.根据权利要求8所述的方法,其特征在于,所述根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界,包括:
确定所述解码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素值;
根据所述第二向右延伸像素值和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述第二待定右边界。
12.根据权利要求9所述的方法,其特征在于,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述确定所述当前图块的搜索区域在所述已编码视频帧中的右边界,包括:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述已编码视频帧中的右边界。
13.根据权利要求8-12任意一项所述的方法,其特征在于,所述在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,包括:
在邻接所述当前图块的已解码区域中确定表征所述当前图块的第一已解码模板,所述当前图块和所述第一已解码模板之间相对位置关系为预设关系;
根据所述第一已解码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已解码模板;
根据所述预设关系和所述第二已解码模板确定所述参考图块。
14.一种视频编码装置,其特征在于,所述装置包括:第一确定模块、第二确定模块、第三确定模块及编码模块;
所述第一确定模块,用于从待编码视频帧中确定待编码的当前图块,所述当前图块处于目标编码树单元CTU中,所述待编码视频帧包括N*M个CTU,所述目标CTU位于所述待编码视频帧的第i行CTU中,且位于并行编码处理的K行CTU中的一行,所述并行编码处理中相邻行的编码进度相差为编码处理延迟,1<K≤N;
所述第二确定模块,用于根据编码增益和复杂度,以及所述当前图块在所述待编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述待编码视频帧中的第一待定右边界;根据所述编码处理延迟和所述目标CTU在所述待编码视频帧中的第二位置信息,确定所述搜索区域在所述待编码视频帧中的第二待定右边界;通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界,所述右边界在第i-1行CTU的已编码CTU中,在所述待编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述编码模块,用于使用所述参考图块对所述当前图块进行编码,并将下一个待编码的图块作为所述当前图块,直至对所述待编码视频帧编码完成,得到已编码视频帧。
15.根据权利要求14所述的装置,其特征在于,所述第二确定模块,用于:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述待编码视频帧中的右边界。
16.根据权利要求14所述的装置,其特征在于,所述第二确定模块,用于:
根据编码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素数量;
根据所述第一向右延伸像素数量,确定所述第一待定右边界。
17.根据权利要求14所述的装置,其特征在于,所述第二确定模块,用于:
确定所述编码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素数量;
根据所述第二向右延伸像素数量,确定所述第二待定右边界。
18.根据权利要求15所述的装置,其特征在于,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述第二确定模块,用于:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述待编码视频帧中的右边界。
19.根据权利要求14-18任意一项所述的装置,其特征在于,所述第三确定模块,用于:
在邻接所述当前图块的已编码区域中确定表征所述当前图块的第一已编码模板,所述当前图块和所述第一已编码模板之间相对位置关系为预设关系;
根据所述第一已编码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已编码模板;
根据所述预设关系和所述第二已编码模板确定所述参考图块。
20.根据权利要求14-18任意一项所述的装置,其特征在于,所述编码处理延迟为至少一个CTU的边长之和。
21.一种视频解码装置,其特征在于,所述装置包括:第一确定模块、第二确定模块、第三确定模块及解码模块;
所述第一确定模块,用于从已编码视频帧中确定待解码的当前图块,所述当前图块处于目标编码树单元CTU中,所述已编码视频帧包括N*M个CTU,所述目标CTU位于所述已编码视频帧的第i行CTU中,且位于并行解码处理的K行CTU中的一行,所述并行解码处理中相邻行的解码进度相差为解码处理延迟,1<K≤N;
所述第二确定模块,用于根据解码增益和复杂度,以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述当前图块的搜索区域在所述已编码视频帧中的第一待定右边界;根据所述解码处理延迟和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述搜索区域在所述已编码视频帧中的第二待定右边界;通过所述第一待定右边界和所述第二待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界,所述右边界在第i-1行CTU的已解码CTU中,在所述已编码视频帧中,第i-1行CTU位于第i行CTU的上方;
所述第三确定模块,用于在所述搜索区域进行针对所述当前图块的搜索,确定所述搜索区域中的参考图块,所述参考图块为与所述当前图块的像素相似度达到相似条件的已编码图块;
所述解码模块,用于使用所述参考图块对所述当前图块进行解码,并将下一个待解码的图块作为所述当前图块,直至对所述已编码视频帧解码完成,得到已解码视频帧。
22.根据权利要求21所述的装置,其特征在于,所述第二确定模块,用于:
根据所述第一待定右边界和所述第二待定右边界中距离所述当前图块最近的待定右边界,确定所述当前图块的搜索区域在所述已编码视频帧中的右边界。
23.根据权利要求21所述的装置,其特征在于,所述第二确定模块,用于:
根据解码增益和复杂度,确定所述搜索区域可向右延伸的程度系数;
基于所述程度系数和所述当前图块的宽度,确定所述搜索区域相对于所述第一位置信息的第一向右延伸像素值;
根据所述第一向右延伸像素值以及所述当前图块在所述已编码视频帧中的第一位置信息,确定所述第一待定右边界。
24.根据权利要求21所述的装置,其特征在于,所述第二确定模块,用于:
确定所述解码处理延迟,确定所述搜索区域相对于所述第二位置信息的第二向右延伸像素值;
根据所述第二向右延伸像素值和所述目标CTU在所述已编码视频帧中的第二位置信息,确定所述第二待定右边界。
25.根据权利要求22所述的装置,其特征在于,当所述第二待定右边界为距离所述当前图块最近的待定右边界,所述第二确定模块,用于:
将所述第二待定右边界向左移动固定像素长度后作为所述当前图块的搜索区域在所述已编码视频帧中的右边界。
26.根据权利要求21-25任意一项所述的装置,其特征在于,所述第三确定模块,用于:
在邻接所述当前图块的已解码区域中确定表征所述当前图块的第一已解码模板,所述当前图块和所述第一已解码模板之间相对位置关系为预设关系;
根据所述第一已解码模板在所述搜索区域进行像素相似度匹配,从所述搜索区域中确定像素相似度达到所述相似条件的第二已解码模板;
根据所述预设关系和所述第二已解码模板确定所述参考图块。
27.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-7或8-13中任意一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序在被计算机设备执行时实现执行权利要求1-7或8-13中任意一项所述的方法。
29.一种包括计算机程序的计算机程序产品,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-7或8-13中任意一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410702735.2A CN118612445B (zh) | 2024-05-31 | 2024-05-31 | 一种视频编解码方法和相关装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410702735.2A CN118612445B (zh) | 2024-05-31 | 2024-05-31 | 一种视频编解码方法和相关装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN118612445A CN118612445A (zh) | 2024-09-06 |
| CN118612445B true CN118612445B (zh) | 2025-06-24 |
Family
ID=92566580
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410702735.2A Active CN118612445B (zh) | 2024-05-31 | 2024-05-31 | 一种视频编解码方法和相关装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118612445B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106134196A (zh) * | 2014-03-21 | 2016-11-16 | 高通股份有限公司 | 在视频译码中用于帧内块复制的搜索区域确定 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016004850A1 (en) * | 2014-07-07 | 2016-01-14 | Mediatek Singapore Pte. Ltd. | Method of intra block copy search and compensation range |
| US10986349B2 (en) * | 2017-12-29 | 2021-04-20 | Microsoft Technology Licensing, Llc | Constraints on locations of reference blocks for intra block copy prediction |
| CN113596475A (zh) * | 2021-06-24 | 2021-11-02 | 浙江大华技术股份有限公司 | 图像/视频编码方法、装置、系统及计算机可读存储介质 |
| US12052438B2 (en) * | 2021-09-17 | 2024-07-30 | Tencent America LLC | Method and apparatus for intra block copy (IntraBC) mode coding with search range restrictions |
| US20230199171A1 (en) * | 2021-12-21 | 2023-06-22 | Mediatek Inc. | Search Memory Management For Video Coding |
| JP2025530109A (ja) * | 2022-09-08 | 2025-09-11 | オッポ広東移動通信有限公司 | ビデオ符号化方法、エンコーダ、及びデコーダ |
-
2024
- 2024-05-31 CN CN202410702735.2A patent/CN118612445B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106134196A (zh) * | 2014-03-21 | 2016-11-16 | 高通股份有限公司 | 在视频译码中用于帧内块复制的搜索区域确定 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118612445A (zh) | 2024-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111741298B (zh) | 视频编码方法、装置、电子设备及可读存储介质 | |
| US20200068213A1 (en) | Exploiting Camera Depth Information for Video Encoding | |
| CN112449140B (zh) | 视频超分辨率处理方法及装置 | |
| US12155840B2 (en) | Video processing method, video processing apparatus, smart device, and storage medium | |
| WO2022257968A1 (zh) | 点云编码方法、点云解码方法及终端 | |
| WO2019153861A1 (zh) | 一种双向帧间预测方法及装置 | |
| CN109565601B (zh) | 一种基于模板匹配的预测方法及装置 | |
| WO2023098807A1 (zh) | 点云编、解码处理方法、装置、编码设备及解码设备 | |
| CN113965751A (zh) | 屏幕内容编码方法、装置、设备及存储介质 | |
| CN115086716A (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
| CN118612445B (zh) | 一种视频编解码方法和相关装置 | |
| CN111918067B (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
| JP2022509982A (ja) | ビデオシーケンスのためのピクチャエンコーディング及びデコーディング方法及び装置 | |
| CN115883835B (zh) | 一种视频编码方法、装置、设备及存储介质 | |
| US12088817B2 (en) | Data coding method and apparatus, and computer-readable storage medium | |
| CN114257647B (zh) | 基于d2d通信的会议视频缓存方法、服务器和系统 | |
| CN116760986B (zh) | 候选运动矢量生成方法、装置、计算机设备和存储介质 | |
| CN116567247A (zh) | 视频编码方法、实时通信方法、装置、设备及存储介质 | |
| CN114449284B (zh) | 一种数据编码方法、装置、存储介质和计算机设备 | |
| US20260004465A1 (en) | Point cloud encoding processing method, point cloud decoding processing method, and related device | |
| CN114697666B (zh) | 屏幕编码方法、屏幕解码方法及相关装置 | |
| CN119996655A (zh) | 视频的信息处理方法、系统、电子设备和存储介质 | |
| WO2024245112A1 (zh) | 点云编码处理方法、点云解码处理方法及相关设备 | |
| HK40084591A (zh) | 视频处理方法、装置及计算机设备、存储介质、程序产品 | |
| CN115941971A (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 |