CN114520917B - 视频编码方法、装置、终端设备以及存储介质 - Google Patents

视频编码方法、装置、终端设备以及存储介质 Download PDF

Info

Publication number
CN114520917B
CN114520917B CN202011306680.1A CN202011306680A CN114520917B CN 114520917 B CN114520917 B CN 114520917B CN 202011306680 A CN202011306680 A CN 202011306680A CN 114520917 B CN114520917 B CN 114520917B
Authority
CN
China
Prior art keywords
division
sub
block
blocks
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011306680.1A
Other languages
English (en)
Other versions
CN114520917A (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 Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011306680.1A priority Critical patent/CN114520917B/zh
Publication of CN114520917A publication Critical patent/CN114520917A/zh
Application granted granted Critical
Publication of CN114520917B publication Critical patent/CN114520917B/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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

本申请实施例公开了一种视频编码方法、装置、终端设备以及存储介质,该方法包括:确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。采用本申请实施例,可减少视频编码的时间和降低编码复杂度。

Description

视频编码方法、装置、终端设备以及存储介质
技术领域
本申请涉及视频处理领域,尤其涉及一种视频编码方法、装置、终端设备以及存储介质。
背景技术
随着网络技术的发展,越来越多的用户通过各类终端观看视频。由于视频占用的存储空间往往十分巨大,而网络带宽又受限,因此在进行视频传输时,需要对视频进行压缩,也即是编码,来降低视频对存储空间的占用。相关技术中,视频编码器对视频进行编码时,针对每种划分方式,需要进行各种不同划分方向的划分尝试,从而选择出最优的划分方式。但是这种遍历所有划分方式和划分方向的编码方法需要耗费较多的时间,且编码复杂度高。
发明内容
本申请实施例提供一种视频编码方法、装置、终端设备以及存储介质,可减少视频编码的时间和降低编码复杂度。
第一方面,本申请实施例提供了一种视频编码方法,该方法包括:
确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
结合第一方面,在一种可能的实施方式中,所述确定针对目标视频帧中的待编码单元的块划分策略,包括:
获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用所述编码器对所述目标视频帧进行视频编码过程中,获取所述目标视频帧中的至少一个图像块;
从所述至少一个图像块中获取待编码单元,基于所述编码器确定针对待编码单元的至少两个块划分方式;
从所述至少两个块划分方式中获取所述第一划分方式,将所述第一划分方式的下一划分方式确定为所述第二划分方式;
基于所述第一划分方式和所述第二划分方式,确定待编码单元的块划分策略。
结合第一方面,在一种可能的实施方式中,所述根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量,包括:
在所述块划分策略中获取针对所述待编码单元的优化条件;所述优化条件中至少包括所述第一划分方式对应的深度阈值T;
根据所述N1个子块的划分深度以及所述深度阈值T,在所述N1个子块的划分深度中,将划分深度大于所述深度阈值T的子块确定为目标子块;
根据累计到的所述目标子块的子块数量P,确定所述第一划分方式对应的子块累计数量。
结合第一方面,在一种可能的实施方式中,所述优化条件中包括所述第一划分方式对应的子块累计阈值C,且所述子块累计阈值C为整数;
所述在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理,包括:
若所述子块累计数量大于或者等于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量达到所述块划分策略中的优化条件,在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
结合第一方面,在一种可能的实施方式中,所述方法还包括:
若所述子块累计数量小于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量未达到所述块划分策略中的优化条件;
根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理。
结合第一方面,在一种可能的实施方式中,若所述第一划分方式为四叉树划分方式,则所述第二划分方式包括:二叉树划分方式、三叉树划分方式,以及扩展四叉树划分方式中的一种或者多种划分优化方式。
结合第一方面,在一种可能的实施方式中,若所述第一划分方式为四叉树划分方式;所述第二划分方式中包括第一划分优化方式和第二划分优化方式;所述第一划分优化方式为二叉树划分方式,所述第二划分优化方式为三叉树划分方式;所述二叉树划分方式为所述四叉树划分方式的下一划分方式,且所述三叉树划分方式为所述二叉树划分方式的下一划分方式;
所述根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理,包括:
根据所述块划分策略从所述第二划分方式中确定用于对所述待编码单元进行块划分处理的所述二叉树划分方式;
按照所述二叉树划分方式对待编码单元进行块划分处理,得到所述待编码单元的M1个子块;所述M1的值是由所述二叉树划分方式所确定的;
所述方法还包括:
在所述M1个子块中遍历选取一个子块作为子块M1k,获取所述子块M1k的子划分方式,基于所述子划分方式确定所述子块M1k的划分深度,直到遍历完所述M1个子块中的每个子块时,得到所述M1个子块的划分深度;所述k为小于所述M1的整数;
根据所述M1个子块的划分深度以及所述块划分策略中的优化条件,确定所述二叉树划分方式对应的优化累计数量;
在所述优化累计数量达到所述块划分策略中的优化条件时,提前终止采用所述三叉树划分方式对所述待编码单元进行块划分处理。
第二方面,本申请实施例提供了一种视频编码装置,该装置包括:
块划分策略确定模块,用于确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
子块划分模块,用于按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
第一划分深度确定模块,用于在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
子块累计数量确定模块,用于根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
第一划分优化模块,用于在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
结合第二方面,在一种可能的实施方式中,所述块划分策略确定模块,包括:
图像块获取单元,用于获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用所述编码器对所述目标视频帧进行视频编码过程中,获取所述目标视频帧中的至少一个图像块;
块划分方式确定单元,用于从所述至少一个图像块中获取待编码单元,基于所述编码器确定针对待编码单元的至少两个块划分方式;
划分方式确定单元,用于从所述至少两个块划分方式中获取所述第一划分方式,将所述第一划分方式的下一划分方式确定为所述第二划分方式;
块划分策略确定单元,用于基于所述第一划分方式和所述第二划分方式,确定待编码单元的块划分策略。
结合第二方面,在一种可能的实施方式中,所述子块累计数量确定模块包括:
优化条件获取单元,用于在所述块划分策略中获取针对所述待编码单元的优化条件;所述优化条件中至少包括所述第一划分方式对应的深度阈值T;
目标子块确定单元,用于根据所述N1个子块的划分深度以及所述深度阈值T,在所述N1个子块的划分深度中,将划分深度大于所述深度阈值T的子块确定为目标子块;
子块累计数量确定单元,用于根据累计到的所述目标子块的子块数量P,确定所述第一划分方式对应的子块累计数量。
结合第二方面,在一种可能的实施方式中,所述优化条件中包括所述第一划分方式对应的子块累计阈值C,且所述子块累计阈值C为整数;
所述第一划分优化模块具体用于:
若所述子块累计数量大于或者等于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量达到所述块划分策略中的优化条件,在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
结合第二方面,在一种可能的实施方式中,所述第一划分优化模块具体用于:
若所述子块累计数量小于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量未达到所述块划分策略中的优化条件;
根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理。
结合第二方面,在一种可能的实施方式中,若所述第一划分方式为四叉树划分方式,则所述第二划分方式包括:二叉树划分方式、三叉树划分方式,以及扩展四叉树划分方式中的一种或者多种划分优化方式。
结合第二方面,在一种可能的实施方式中,若所述第一划分方式为四叉树划分方式;所述第二划分方式中包括第一划分优化方式和第二划分优化方式;所述第一划分优化方式为二叉树划分方式,所述第二划分优化方式为三叉树划分方式;所述二叉树划分方式为所述四叉树划分方式的下一划分方式,且所述三叉树划分方式为所述二叉树划分方式的下一划分方式;
所述第一划分优化模块具体还用于:
根据所述块划分策略从所述第二划分方式中确定用于对所述待编码单元进行块划分处理的所述二叉树划分方式;
按照所述二叉树划分方式对待编码单元进行块划分处理,得到所述待编码单元的M1个子块;所述M1的值是由所述二叉树划分方式所确定的;
所述装置还包括:
第二划分深度确定模块,用于在所述M1个子块中遍历选取一个子块作为子块M1k,获取所述子块M1k的子划分方式,基于所述子划分方式确定所述子块M1k的划分深度,直到遍历完所述M1个子块中的每个子块时,得到所述M1个子块的划分深度;所述k为小于所述M1的整数;
优化累计数量确定模块,用于根据所述M1个子块的划分深度以及所述块划分策略中的优化条件,确定所述二叉树划分方式对应的优化累计数量;
第二划分优化模块,用于在所述优化累计数量达到所述块划分策略中的优化条件时,提前终止采用所述三叉树划分方式对所述待编码单元进行块划分处理。
第三方面,本申请实施例提供了一种终端设备,该终端设备包括处理器和存储器,该处理器和存储器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
在本申请实施例中,确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。采用本申请实施例,可减少视频编码的时间和降低编码复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是针对视频帧的划分示意图;
图2是本申请实施例提供的一种视频编码方法的实施环境示意图;
图3是本申请实施例提供的一种视频编码方法的流程示意图;
图4是本申请实施例提供的一种划分决策的流程示意图;
图5是本申请实施提供的一种确定子块划分深度的应用场景示意图;
图6是本申请实施例提供的一种视频编码方法的流程示意图;
图7是本申请实施提供的一种确定子块划分深度的应用场景示意图;
图8是本申请实施提供的一种确定子块划分深度的应用场景示意图;
图9是本申请实施例提供的一种划分优化的应用场景示意图;
图10是本申请实施例提供的一种视频编码装置的结构示意图;
图11是本申请实施例提供的一种视频编码装置的结构示意图;
图12是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了对本申请提供的技术方案进行更加清楚的说明,首先对本申请实施例中涉及的名词进行介绍:
编码单元(Coding Unit,CU):通常而言,一个视频序列经过拆帧处理后,可得到多个视频帧。其中,一个视频帧可包括多个编码单元。在视频编码过程中,需要对视频帧进行划分,其中,划分包括多个层级。举例来说,请参见图1,图1是针对视频帧的划分示意图。如图1所示,假设一个视频序列中共包括99个视频帧,其分别为视频帧1~视频帧99。以视频编码器对视频帧99进行编码划分为例。假设对视频帧99进行四叉树(Quad tree,QT)划分可得到四个图像块分别为CU1,CU2,CU3和CU4。该四个图像块也即是编码单元。进一步地,视频编码器能够对四个图像块中的任意一个或者多个图像块继续进行划分,得到第一层子块。例如,以针对图像块CU4的划分方式为二叉树(Binary tree,BT)划分为例,视频编码器能够将图像块CU4划分为两个第一层子块,分别为第一层子块101和第一层子块102。其中,视频编码器还能够对两个第一层子块中的任1个或2个第一层子块继续进行划分,以得到第二层子块(图1中暂未示出)等,以此类推,得到更深层次的子块。其中,划分方式除了包括上述QT划分和BT划分外,还包括三叉树(Trinomial tree,TT)划分和扩展四叉树(Extended Quad-Tree,EQT)划分等,在此不做限制。
应当理解的是,本申请提供的视频编码方法能够用于多种视频编码标准的上下文中,比如应用在多功能视频编码标准(Versatile Video Coding,VVC/H.266)中,或者,高性能视频编码标准(High Efficiency Video Coding,HEVC)中,或者,第二代数字视频编解码技术标准(Audio Video coding Standard 2,AVS2)中,或者,第三代数字视频编解码技术标准(Audio Video coding Standard 3,AVS3)中等,本申请实施例对此不做限定。
请参见图2,图2是本申请实施例提供的一种视频编码方法的实施环境示意图。如图2所示,该实施环境中可以包括终端设备210和服务器220。终端设备210通过无线网络或有线网络与服务器220相连。可选的,终端设备210包括智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,在此不做限制。终端设备210安装和运行有支持视频编码的编码器。可选的,服务器220是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器能够通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在本申请实施例中,能够由服务器或终端设备作为执行主体来实施本申请实施例提供的技术方案,也能够通过终端设备和服务器之间的交互来实施本申请提供的技术方法,本申请实施例对此不作限定。为方便描述,下面将以终端设备为例进行说明。具体地,本申请实施例中的方法,终端设备通过确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。采用本申请实施例,可减少视频编码的时间和降低编码复杂度。
下面将结合图3至图12分别对本申请实施例提供的方法及相关装置分别进行详细说明。
参见图3,图3为本申请实施例提供的一种视频编码方法的流程示意图。本申请实施例提供的方法可以包括如下步骤S301至S305:
S301、确定针对目标视频帧中的待编码单元的块划分策略。
应当理解的是,视频是由一幅幅静止图像(帧)组成的序列,这些帧以一定的速率连续播放,利用人眼的视觉暂留特性,使人看到连贯的活动图像。因此,通过对视频数据或视频序列(为方便描述,简称视频)进行拆帧处理,可得到组成视频的多个视频帧,也称作图像帧,进而可从组成视频的多个视频帧中确定出目标视频帧。应当理解的是,目标视频帧是本次进行视频编码的对象。例如,假设对视频数据进行拆帧处理后可得到视频帧1,视频帧2,视频帧3,视频帧4,…,视频帧99。其中,假设本次进行视频编码的对象为视频帧1,则目标视频帧即为视频帧1,假设本次进行视频编码的对象为视频帧2,则目标视频帧即为视频帧2。
在一些可行的实施方式中,确定针对目标视频帧中的待编码单元的块划分策略。其中,块划分策略至少包括第一划分方式和第二划分方式,第二划分方式为在第一划分方式之后的划分方式,且第二划分方式不同于第一划分方式。
具体地,通过获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用编码器对目标视频帧进行视频编码过程中,可以获取目标视频帧中的至少一个图像块,进而可以从至少一个图像块中获取待编码单元。也就是说,一个视频帧通常可被划分成至少一个CU,也称作图像块或者宏块,进而可以CU为基本编码单位,对各个CU依次进行编码。其中,本申请实施例通过从目标视频帧中的至少一个CU(即至少一个图像块)中获取任一CU(即任一图像块),可将获取到的CU(图像块)作为待编码单元。
进一步地,基于编码器确定针对待编码单元的至少两个块划分方式。其中,从至少两个块划分方式中获取第一划分方式,将第一划分方式的下一划分方式确定为第二划分方式。因此,根据第一划分方式和第二划分方式,确定待编码单元的块划分策略。其中,块划分方式可包括QT划分、BT划分、TT划分和EQT划分等。并且,不同编码器中的块划分方式的执行顺序不同。假设编码器中的执行顺序为T0→T1→T2→T3,则T0通常可以选择QT划分。可选的,T0也有可能是BT、TT和EQT中的一种,在此不做限制。为方便描述,本申请实施例中的T0皆为QT划分为例进行说明。
请参见图4,图4是本申请实施例提供的一种划分决策的流程示意图。如图4所示,编码器中的执行顺序为QT→T1→T2→T3,其中,当T0为QT划分时,则剩余T1、T2、T3可能是BT、TT、EQT中的任意一种并且T1、T2、T3不能是同一种划分方式。因此,T1、T2、T3可以有六种组合方式:①T1、T2、T3可分别是BT、TT、EQT,即编码器的执行顺序为QT→BT→TT→EQT。②T1、T2、T3也可分别是BT、EQT、TT,即编码器的执行顺序为QT→BT→EQT→TT。③T1、T2、T3也可分别是TT、BT、EQT,即编码器的执行顺序为QT→TT→BT→EQT。④T1、T2、T3也可分别是TT、EQT、BT,即编码器的执行顺序为QT→TT→EQT→BT。⑤T1、T2、T3也可分别是EQT、BT、TT,即编码器的执行顺序为QT→EQT→BT→TT。⑥T1、T2、T3还可以分别是EQT、TT、BT,即编码器的执行顺序为QT→EQT→TT→BT。其中,本申请对上述6种执行顺序的选择不做限制。因此,第一划分方式可以是QT、BT、TT、EQT中的任一种。其中,假设编码器的执行顺序为QT→BT→TT→EQT,则当第一划分方式为QT划分时,则第一划分方式的下一划分方式(即第二划分方式)可以是BT、TT、EQT中的任一种或多种。
S302、按照第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块。
在一些可行的实施方式中,按照第一划分方式对待编码单元进行块划分处理,可以得到待编码单元的N1个子块。其中,N1的值是由上述第一划分方式所确定的。例如,当第一划分方式为QT划分时,N1的值可以等于4,当第一划分方式为BT划分时,N1的值可以等于2,当第一划分方式为TT划分时,N1的值可以等于3,当第一划分方式为EQT划分时,N1的值可以等于4。
应当理解的是,本申请实施例中的第一划分方式仅是针对将待编码单元划分为第一层子块的划分方式,后续针对每个第一层子块的划分,以及第一层子块的子块(为方便描述,简称第二层子块)的划分,第一次子块的子块的子块(为方便描述,简称第三层子块)的划分,甚至更深层次子块的划分将不再受第一划分方式的限制。举例来说,假设第一划分方式为QT划分,则可将待编码单元划分为4个第一层子块(即N1=4),进一步地,针对后续每个第一层子块以及更深层次子块的划分,可以采用QT划分和/或BT划分和/或TT划分和/或EQT划分等,具体根据实际应用场景确定,在此不做限制。
通常而言,后续针对待编码单元的第一层子块以及更深层次子块的划分方式(即子划分方式),可采用率失真优化(Rate-distortion Optimization,RDO)方法来确定,且最后选择并存储率失真(Rate-distortion,RD)代价最小的划分方式作为整个待编码单元的最佳划分方式。
S303、在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度。
在一些可行的实施方式中,在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度。其中i为小于N1的整数。也就是说,针对N1个子块,可依次统计N1个子块中的每个子块的划分深度,进而得到N1个划分深度。
举例来说,请参见图5,图5是本申请实施提供的一种确定子块划分深度的应用场景示意图。如图5所示,假设编码器的执行顺序为QT→BT→TT→EQT。第一划分方式为QT划分,因此基于QT划分对待编码单元进行第一层划分后,可得到4个第一层子块(即N1=4),此后,针对每个第一层子块,可基于RDO方法来确定各第一层子块的最佳划分方式,以及基于RDO方法来确定针对第一层子块的子块(即第二层子块)的最佳划分方式,以此类推,最后选择基于QT划分得到的整个待编码单元的RD代价最低的那个作为此次划分最好的划分方式。其中,假设基于RDO方法确定出采用QT划分所得到的整个待编码单元的最佳划分方式如图5中左边待编码单元中所呈现的划分方式,其中,待编码单元中的线条01表示QT划分,线条02表示BT划分,线条03表示TT划分,线条04表示EQT划分。如图5右边为对应的树表示。因此,针对4个子块(即4个第一层子块),可依次统计4个子块中的每个子块的划分深度,进而得到4个划分深度。如图5所示,左上角的第一层子块N10先被水平二叉划分为2个第二层子块,2个第二层子块中的一个第二层子块又被垂直扩展四叉划分为4个第三层子块,另一个第二层子块没有被划分,因此第一层子块N10的子块划分深度dN10=3,左下角的第一层子块N12被垂直三叉划分为3个第二层子块,因此第一层子块N12的子块划分深度dN12=2,而右上角的第一层子块N11和右下角的第一层子块N13没有被进一步划分,因此,第一层子块N11的子块划分深度dN11=1,第一层子块N13的子块划分深度dN13=1。
S304、根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量。
在一些可行的实施方式中,根据N1个子块的划分深度以及块划分策略中的优化条件,可确定出第一划分方式对应的子块累计数量。也就是说,可在块划分策略中获取针对待编码单元的优化条件。其中,优化条件中至少包括第一划分方式对应的深度阈值T。因此,根据N1个子块的划分深度以及深度阈值T,可从N1个子块的划分深度中,将划分深度大于深度阈值T的子块确定为目标子块。进而,根据累计到的目标子块的子块数量P,确定第一划分方式对应的子块累计数量。也就是说,当确定出N1个子块的划分深度后,可进一步统计N1个子块的划分深度中,划分深度大于深度阈值T的子块数量P。
举例来说,请一并参见图5,其中,图5中4个子块的划分深度分别为dN10=3,dN11=1,dN12=2,dN13=1。假设预设的深度阈值T=1,则可统计得到划分深度大于1的子块数量为2(即P=2),即目标子块为左上角的子块N10和左下角的子块N12
S305、在子块累计数量达到块划分策略中的优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。
在一些可行的实施方式中,在子块累计数量达到块划分策略中的优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。其中,优化条件中包括第一划分方式对应的子块累计阈值C,且子块累计阈值C为整数。具体地,若子块累计数量大于或者等于优化条件中的子块累计阈值C,则确定子块累计数量达到块划分策略中的优化条件,在块划分策略中提前终止采用第二划分方式对待编码单元进行块划分处理。若子块累计数量小于优化条件中的子块累计阈值C,则确定子块累计数量未达到块划分策略中的优化条件,进而根据块划分策略按照第二划分方式对待编码单元进行块划分处理。
举例来说,请一并参见图5,其中,编码器的执行顺序为QT→BT→TT→EQT。第一划分方式为QT划分,图5中大于深度阈值T=1的目标子块的子块数量P=2。①假设子块累计阈值C=3,其中,由于子块数量P=2<C=3,则确定所述子块累计数量未达到所述块划分策略中的优化条件,因此,可根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理,即可继续执行BT划分处理。②假设子块累计阈值C=1,则由于子块数量P=2>C=1,因此,可在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。例如,可终止后续块划分策略中的BT划分、TT划分和EQT划分,或者只终止BT划分、TT划分和EQT划分中的一种划分或两种划分等,具体根据实际应用场景确定,在此不做限制。
在本申请实施例中,确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。采用本申请实施例,可减少视频编码的时间和降低编码复杂度。
参见图6,图6是本申请实施例提供的一种视频编码方法的流程示意图。本申请实施例提供的方法可通过如下步骤S401至S408提供的实现方式进行说明:
S401、确定针对目标视频帧中的待编码单元的块划分策略。
S402、按照第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块。
S403、在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度。
S404、根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量。
S405、在子块累计数量达到块划分策略中的优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。
其中,上述步骤S401至步骤S405的具体实现方式可以参见图3对应的实施例中对步骤S301至步骤S305的描述,这里不再进行赘述。
S406、在子块累计数量未达到块划分策略中的优化条件时,根据块划分策略从第二划分方式中确定用于对待编码单元进行块划分处理的二叉树划分方式,并按照二叉树划分方式对待编码单元进行块划分处理,得到待编码单元的M1个子块。
在一些可行的实施方式中,若第一划分方式为四叉树划分方式,第二划分方式中包括第一划分优化方式和第二划分优化方式。其中,第一划分优化方式为二叉树划分方式,第二划分优化方式为三叉树划分方式。二叉树划分方式为四叉树划分方式的下一划分方式,且三叉树划分方式为二叉树划分方式的下一划分方式。因此,在子块累计数量未达到块划分策略中的优化条件时,可根据块划分策略从第二划分方式中确定用于对待编码单元进行块划分处理的二叉树划分方式,并按照二叉树划分方式对待编码单元进行块划分处理,得到待编码单元的M1个子块。其中,M1的值是由二叉树划分方式所确定的。这里,M1=2。
S407、在M1个子块中遍历选取一个子块作为子块M1k,获取子块M1k的子划分方式,基于子划分方式确定子块M1k的划分深度,直到遍历完M1个子块中的每个子块时,得到M1个子块的划分深度。
在一些可行的实施方式中,在M1个子块中遍历选取一个子块作为子块M1k,获取子块M1k的子划分方式,基于子划分方式确定子块M1k的划分深度,直到遍历完M1个子块中的每个子块时,得到M1个子块的划分深度。其中,k为小于M1的整数。也就是说,可依次遍历2个子块(即2个第一层子块)中每个子块,以获取每个子块的子划分方式,并根据每个子块的子划分方式确定每个子块的划分深度,进而可得到2个子块的划分深度。
举例来说,请参见图7,图7是本申请实施提供的一种确定子块划分深度的应用场景示意图。假设编码器的执行顺序为QT→BT→TT→EQT。其中,第一划分优化方式为BT划分,因此基于BT划分对待编码单元进行第一层划分后,可得到2个第一层子块(即N1=2),此后,针对每个第一层子块,可基于RDO方法来确定各第一层子块的最佳划分方式,以及基于RDO方法来确定针对第一层子块的子块(即第二层子块)以及更深层次的子块的最佳划分方式等,以此类推,最后选择RD代价最低的那个作为此次划分最好的划分方式。其中,假设基于RDO方法确定出采用BT划分所得到的整个待编码单元的最佳划分方式如图7中左边待编码单元中所呈现的划分方式,其中,待编码单元中的线条02表示BT划分,线条03表示TT划分,线条04表示ETQ划分。如图7右边为对应的树表示。因此,针对2个子块(即2个第一层子块),可依次统计2个子块中的每个子块的划分深度,进而得到2个划分深度。如图7所示,正上方的第一层子块N10先被水平三叉划分为3个第二层子块,其中3个第二层子块中的一个第二层子块被垂直二叉划分为2个第三层子块,3个第二层子块中的一个第二层子块被垂直扩展四叉划分为4个第三层子块,剩余另一个第二层子块没有被划分,因此第一层子块N10的子块划分深度dN10=3。正下方的第一层子块N11先被水平三叉划分为3个第二层子块,其中3个第二层子块中的一个第二层子块被垂直二叉划分为2个第三层子块,而2个第三层子块中的一个第三层子块又被垂直二叉划分为2个第四层子块,另一个第三层子块没有被继续划分。3个第二层子块中另外2个第二层子块皆没有被继续划分,因此,第一层子块N11的子块划分深度dN11=4。
S408、根据M1个子块的划分深度以及块划分策略中的优化条件,确定二叉树划分方式对应的优化累计数量,并在优化累计数量达到块划分策略中的优化条件时,提前终止采用三叉树划分方式对待编码单元进行块划分处理。
在一些可行的实施方式中,根据M1个子块的划分深度以及块划分策略中的优化条件,确定二叉树划分方式对应的优化累计数量,并在优化累计数量达到块划分策略中的优化条件时,提前终止采用三叉树划分方式对待编码单元进行块划分处理。具体地,优化条件中至少包括二叉树划分方式对应的深度阈值T和二叉树划分方式对应的子块累计阈值C。因此,根据M1个子块的划分深度以及深度阈值T,可从M1个子块的划分深度中,将划分深度大于深度阈值T的子块确定为目标子块。进而,根据累计到的目标子块的子块数量P,确定二叉树划分方式对应的优化累计数量。也就是说,当确定出M1个子块的划分深度后,可进一步统计M1个子块的划分深度中,划分深度大于深度阈值T的子块数量P,进而将子块数量P确定为优化累计数量。若优化累计数量大于或者等于优化条件中的子块累计阈值C,则确定优化累计数量达到块划分策略中的优化条件,在块划分策略中提前终止采用第二划分方式对待编码单元进行块划分处理。若优化累计数量小于优化条件中的子块累计阈值C,则确定优化累计数量未达到块划分策略中的优化条件,进而根据块划分策略按照第二划分方式对待编码单元进行块划分处理。
举例来说,请一并参见图7,其中,当第一划分方式为图7中2个子块的划分深度分别为dN10=3,dN11=4。假设预设的深度阈值T=3,则可统计得到划分深度大于3的子块数量为1(即P=1),也就是说,基于BT划分得到的子块N11为目标子块。①假设子块累计阈值C=2,其中,子块数量P=1<C=2,则确定子块累计数量未达到块划分策略中的优化条件,因此,可根据块划分策略按照第二划分优化方式对待编码单元进行块划分处理。例如,假设编码器的执行顺序为QT→BT→TT→EQT。因此,可继续执行TT划分处理。②假设子块累计阈值C=1,则由于子块数量P=1=C=1,因此,可在块划分策略中提前终止采用第二划分优化方式对待编码单元进行块划分处理。例如,假设编码器的执行顺序为QT→BT→TT→EQT。因此,可终止后续块划分策略中的TT划分和EQT划分,或者,提前终止TT划分和EQT划分中的一种划分方式。为方便描述,这里以第①种情况,即继续执行TT划分处理为例进行说明。
其中,请参见图8,图8是本申请实施提供的一种确定子块划分深度的应用场景示意图。如图8所示,假设第二划分优化方式为TT划分,因此基于TT划分对待编码单元进行第一层划分后,可得到3个第一层子块(即N1=3),此后,针对每个第一层子块,可基于RDO方法来确定各第一层子块的最佳划分方式,以及基于RDO方法来确定针对第一层子块的子块(即第二层子块)以及更深层次的子块的最佳划分方式等,以此类推,最后选择RD代价最低的那个作为此次划分最好的划分方式。其中,假设基于RDO方法确定出第一层子块采用TT划分所得到的整个待编码单元的最佳划分方式如图8中左边待编码单元中所呈现的划分方式,其中,待编码单元中的线条02表示BT划分,线条03表示TT划分,线条04表示ETQ划分。如图8右边为对应的树表示。因此,针对3个子块(即3个第一层子块),可依次统计3个子块中的每个子块的划分深度,进而得到3个划分深度。如图8所示,最上方的第一层子块N10先被垂直二叉划分为2个第二层子块,2个第二层子块中的一个第二层子块又被垂直扩展四叉划分为4个第三层子块,另一个第二层子块被垂直二叉划分为2个第三层子块,因此第一层子块N10的子块划分深度dN10=3。中间的第一层子块N11被垂直二叉划分为2个第二层子块,2个第二层子块没有被继续划分,因此第一层子块N11的子块划分深度dN11=2。最下方的第一层子块N12没有被进一步划分,因此,第一层子块N12的子块划分深度dN12=1。假设预设的深度阈值T=1,则可统计得到划分深度大于1的子块数量为2(即P=2),也就是说,目标子块为最上方的子块N10。其中,①假设子块累计阈值C=3,其中,子块数量P=2<C=3,则确定子块累计数量未达到块划分策略中的优化条件,因此,可根据块划分策略按照第二划分方式对待编码单元进行块划分处理。例如,假设编码器的执行顺序为QT→BT→TT→EQT。因此,可继续执行EQT划分处理。②假设子块累计阈值C=1,则由于子块数量P=2>C=1,因此,可在块划分策略中提前终止采用第二划分方式对待编码单元进行块划分处理。例如,假设编码器的执行顺序为QT→BT→TT→EQT。因此,可终止后续块划分策略中的EQT划分。
为便于理解,请一并参见图9,图9是本申请实施例提供的一种划分优化的应用场景示意图。其中,编码器的执行顺序为QT→BT→TT→EQT。如图9所示,第一划分方式为QT划分(即N1=4)。其中,4个子块的划分深度分别为dN10=3,dN11=1,dN12=2,dN13=1,假设QT划分对应的深度阈值T=1,因此可得到4个子块中大于深度阈值T的目标子块的子块数量P=2,假设QT划分对应的子块累计阈值C=3,因此,可确定继续执行第二划分方式中的BT划分(即M1=2)。其中,2个子块的划分深度分别为dN10=3,dN11=4,假设QT划分对应的深度阈值T=3,因此可得到2个子块中大于深度阈值T的目标子块的子块数量P=1,假设QT划分对应的子块累计阈值C=2,因此,可确定继续执行第二划分方式中的TT划分。其中,3个子块的划分深度分别为dN10=3,dN11=2,dN12=1,假设TT划分对应的深度阈值T=1,因此可得到4个子块中大于深度阈值T的目标子块的子块数量P=2,假设QT划分对应的子块累计阈值C=1,因此,可确定终止QT划分之后的EQT划分。
在本申请实施例中,确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。进一步地,在子块累计数量未达到块划分策略中的优化条件时,根据块划分策略从第二划分方式中确定用于对待编码单元进行块划分处理的二叉树划分方式,并按照二叉树划分方式对待编码单元进行块划分处理,得到待编码单元的M1个子块。在M1个子块中遍历选取一个子块作为子块M1k,获取子块M1k的子划分方式,基于子划分方式确定子块M1k的划分深度,直到遍历完M1个子块中的每个子块时,得到M1个子块的划分深度。根据M1个子块的划分深度以及块划分策略中的优化条件,确定二叉树划分方式对应的优化累计数量,并在优化累计数量达到块划分策略中的优化条件时,提前终止采用三叉树划分方式对待编码单元进行块划分处理。采用本申请实施例,提高提前终止一种或者多种划分方式可减少视频编码的时间和降低编码复杂度。
参见图10,图10是本申请实施例提供的一种视频编码装置的结构示意图。本申请实施例提供的视频编码装置包括:
块划分策略确定模块51,用于确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
子块划分模块52,用于按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
第一划分深度确定模块53,用于在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
子块累计数量确定模块54,用于根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
第一划分优化模块55,用于在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
请一并参见图11,图11是本申请实施例提供的一种视频编码装置的结构示意图。
在一些可行的实施方式中,所述块划分策略确定模块51,包括:
图像块获取单元511,用于获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用所述编码器对所述目标视频帧进行视频编码过程中,获取所述目标视频帧中的至少一个图像块;
块划分方式确定单元512,用于从所述至少一个图像块中获取待编码单元,基于所述编码器确定针对待编码单元的至少两个块划分方式;
划分方式确定单元513,用于从所述至少两个块划分方式中获取所述第一划分方式,将所述第一划分方式的下一划分方式确定为所述第二划分方式;
块划分策略确定单元514,用于基于所述第一划分方式和所述第二划分方式,确定待编码单元的块划分策略。
在一些可行的实施方式中,所述子块累计数量确定模块54包括:
优化条件获取单元541,用于在所述块划分策略中获取针对所述待编码单元的优化条件;所述优化条件中至少包括所述第一划分方式对应的深度阈值T;
目标子块确定单元542,用于根据所述N1个子块的划分深度以及所述深度阈值T,在所述N1个子块的划分深度中,将划分深度大于所述深度阈值T的子块确定为目标子块;
子块累计数量确定单元543,用于根据累计到的所述目标子块的子块数量P,确定所述第一划分方式对应的子块累计数量。
在一些可行的实施方式中,所述优化条件中包括所述第一划分方式对应的子块累计阈值C,且所述子块累计阈值C为整数;
所述第一划分优化模块55具体用于:
若所述子块累计数量大于或者等于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量达到所述块划分策略中的优化条件,在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
在一些可行的实施方式中,所述第一划分优化模块55具体用于:
若所述子块累计数量小于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量未达到所述块划分策略中的优化条件;
根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理。
在一些可行的实施方式中,若所述第一划分方式为四叉树划分方式,则所述第二划分方式包括:二叉树划分方式、三叉树划分方式,以及扩展四叉树划分方式中的一种或者多种划分优化方式。
在一些可行的实施方式中,若所述第一划分方式为四叉树划分方式;所述第二划分方式中包括第一划分优化方式和第二划分优化方式;所述第一划分优化方式为二叉树划分方式,所述第二划分优化方式为三叉树划分方式;所述二叉树划分方式为所述四叉树划分方式的下一划分方式,且所述三叉树划分方式为所述二叉树划分方式的下一划分方式;
所述第一划分优化模块55具体还用于:
根据所述块划分策略从所述第二划分方式中确定用于对所述待编码单元进行块划分处理的所述二叉树划分方式;
按照所述二叉树划分方式对待编码单元进行块划分处理,得到所述待编码单元的M1个子块;所述M1的值是由所述二叉树划分方式所确定的;
所述装置还包括:
第二划分深度确定模块56,用于在所述M1个子块中遍历选取一个子块作为子块M1k,获取所述子块M1k的子划分方式,基于所述子划分方式确定所述子块M1k的划分深度,直到遍历完所述M1个子块中的每个子块时,得到所述M1个子块的划分深度;所述k为小于所述M1的整数;
优化累计数量确定模块57,用于根据所述M1个子块的划分深度以及所述块划分策略中的优化条件,确定所述二叉树划分方式对应的优化累计数量;
第二划分优化模块58,用于在所述优化累计数量达到所述块划分策略中的优化条件时,提前终止采用所述三叉树划分方式对所述待编码单元进行块划分处理。
在本申请实施例中,视频编码装置确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。进一步地,在子块累计数量未达到块划分策略中的优化条件时,根据块划分策略从第二划分方式中确定用于对待编码单元进行块划分处理的二叉树划分方式,并按照二叉树划分方式对待编码单元进行块划分处理,得到待编码单元的M1个子块。在M1个子块中遍历选取一个子块作为子块M1k,获取子块M1k的子划分方式,基于子划分方式确定子块M1k的划分深度,直到遍历完M1个子块中的每个子块时,得到M1个子块的划分深度。根据M1个子块的划分深度以及块划分策略中的优化条件,确定二叉树划分方式对应的优化累计数量,并在优化累计数量达到块划分策略中的优化条件时,提前终止采用三叉树划分方式对待编码单元进行块划分处理。采用本申请实施例,提高提前终止一种或者多种划分方式可减少视频编码的时间和降低编码复杂度。
参见图12,图12是本申请实施例提供的一种终端设备的结构示意图。如图4所示,本实施例中的终端设备可以包括:一个或多个处理器401、存储器402和收发器403。上述处理器401、存储器402和收发器403通过总线404连接。存储器402用于存储计算机程序,该计算机程序包括程序指令,处理器401用于执行存储器402存储的程序指令,执行如下操作:
确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
在一些可行的实施方式中,上述处理器401用于:
获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用所述编码器对所述目标视频帧进行视频编码过程中,获取所述目标视频帧中的至少一个图像块;
从所述至少一个图像块中获取待编码单元,基于所述编码器确定针对待编码单元的至少两个块划分方式;
从所述至少两个块划分方式中获取所述第一划分方式,将所述第一划分方式的下一划分方式确定为所述第二划分方式;
基于所述第一划分方式和所述第二划分方式,确定待编码单元的块划分策略。
在一些可行的实施方式中,上述处理器401用于:
在所述块划分策略中获取针对所述待编码单元的优化条件;所述优化条件中至少包括所述第一划分方式对应的深度阈值T;
根据所述N1个子块的划分深度以及所述深度阈值T,在所述N1个子块的划分深度中,将划分深度大于所述深度阈值T的子块确定为目标子块;
根据累计到的所述目标子块的子块数量P,确定所述第一划分方式对应的子块累计数量。
在一些可行的实施方式中,所述优化条件中包括所述第一划分方式对应的子块累计阈值C,且所述子块累计阈值C为整数;
上述处理器401用于:
若所述子块累计数量大于或者等于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量达到所述块划分策略中的优化条件,在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
在一些可行的实施方式中,上述处理器401用于:
若所述子块累计数量小于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量未达到所述块划分策略中的优化条件;
根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理。
在一些可行的实施方式中,若所述第一划分方式为四叉树划分方式,则所述第二划分方式包括:二叉树划分方式、三叉树划分方式,以及扩展四叉树划分方式中的一种或者多种划分优化方式。
在一些可行的实施方式中,若所述第一划分方式为四叉树划分方式;所述第二划分方式中包括第一划分优化方式和第二划分优化方式;所述第一划分优化方式为二叉树划分方式,所述第二划分优化方式为三叉树划分方式;所述二叉树划分方式为所述四叉树划分方式的下一划分方式,且所述三叉树划分方式为所述二叉树划分方式的下一划分方式;
上述处理器401用于:
根据所述块划分策略从所述第二划分方式中确定用于对所述待编码单元进行块划分处理的所述二叉树划分方式;
按照所述二叉树划分方式对待编码单元进行块划分处理,得到所述待编码单元的M1个子块;所述M1的值是由所述二叉树划分方式所确定的;
上述处理器401还用于:
在所述M1个子块中遍历选取一个子块作为子块M1k,获取所述子块M1k的子划分方式,基于所述子划分方式确定所述子块M1k的划分深度,直到遍历完所述M1个子块中的每个子块时,得到所述M1个子块的划分深度;所述k为小于所述M1的整数;
根据所述M1个子块的划分深度以及所述块划分策略中的优化条件,确定所述二叉树划分方式对应的优化累计数量;
在所述优化累计数量达到所述块划分策略中的优化条件时,提前终止采用所述三叉树划分方式对所述待编码单元进行块划分处理。
应当理解,在一些可行的实施方式中,上述处理器401可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402的一部分还可以包括非易失性随机存取存储器。例如,存储器402还可以存储设备类型的信息。
具体实现中,上述终端设备可通过其内置的各个功能模块执行如上述图1至图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本申请实施例中,终端设备确定对待编码单元的块划分策略;按照块划分策略中的第一划分方式对待编码单元进行块划分处理,得到待编码单元的N1个子块;在N1个子块中遍历选取一个子块作为子块N1i,获取子块N1i的子划分方式,基于子划分方式确定子块N1i的划分深度,直到遍历完N1个子块中的每个子块时,得到N1个子块的划分深度;根据N1个子块的划分深度以及块划分策略中的优化条件,确定第一划分方式对应的子块累计数量;在子块累计数量达到优化条件时,提前终止采用第二划分方式对待编码单元进行块划分处理。进一步地,在子块累计数量未达到块划分策略中的优化条件时,根据块划分策略从第二划分方式中确定用于对待编码单元进行块划分处理的二叉树划分方式,并按照二叉树划分方式对待编码单元进行块划分处理,得到待编码单元的M1个子块。在M1个子块中遍历选取一个子块作为子块M1k,获取子块M1k的子划分方式,基于子划分方式确定子块M1k的划分深度,直到遍历完M1个子块中的每个子块时,得到M1个子块的划分深度。根据M1个子块的划分深度以及块划分策略中的优化条件,确定二叉树划分方式对应的优化累计数量,并在优化累计数量达到块划分策略中的优化条件时,提前终止采用三叉树划分方式对待编码单元进行块划分处理。采用本申请实施例,提高提前终止一种或者多种划分方式可减少视频编码的时间和降低编码复杂度。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图1至图2中各个步骤所提供的视频编码方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的视频编码装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmedia card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。

Claims (10)

1.一种视频编码方法,其特征在于,所述方法包括:
确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
2.根据权利要求1所述的方法,其特征在于,所述确定针对目标视频帧中的待编码单元的块划分策略,包括:
获取用于对视频数据中的目标视频帧进行视频编码的编码器,在采用所述编码器对所述目标视频帧进行视频编码过程中,获取所述目标视频帧中的至少一个图像块;
从所述至少一个图像块中获取待编码单元,基于所述编码器确定针对待编码单元的至少两个块划分方式;
从所述至少两个块划分方式中获取所述第一划分方式,将所述第一划分方式的下一划分方式确定为所述第二划分方式;
基于所述第一划分方式和所述第二划分方式,确定待编码单元的块划分策略。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量,包括:
在所述块划分策略中获取针对所述待编码单元的优化条件;所述优化条件中至少包括所述第一划分方式对应的深度阈值T;
根据所述N1个子块的划分深度以及所述深度阈值T,在所述N1个子块的划分深度中,将划分深度大于所述深度阈值T的子块确定为目标子块;
根据累计到的所述目标子块的子块数量P,确定所述第一划分方式对应的子块累计数量。
4.根据权利要求3所述的方法,其特征在于,所述优化条件中包括所述第一划分方式对应的子块累计阈值C,且所述子块累计阈值C为整数;
所述在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理,包括:
若所述子块累计数量大于或者等于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量达到所述块划分策略中的优化条件,在所述块划分策略中提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述子块累计数量小于所述优化条件中的所述子块累计阈值C,则确定所述子块累计数量未达到所述块划分策略中的优化条件;
根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理。
6.根据权利要求5所述的方法,其特征在于,若所述第一划分方式为四叉树划分方式,则所述第二划分方式包括:二叉树划分方式、三叉树划分方式,以及扩展四叉树划分方式中的一种或者多种划分优化方式。
7.根据权利要求5所述的方法,其特征在于,若所述第一划分方式为四叉树划分方式;所述第二划分方式中包括第一划分优化方式和第二划分优化方式;所述第一划分优化方式为二叉树划分方式,所述第二划分优化方式为三叉树划分方式;所述二叉树划分方式为所述四叉树划分方式的下一划分方式,且所述三叉树划分方式为所述二叉树划分方式的下一划分方式;
所述根据块划分策略按照所述第二划分方式对所述待编码单元进行块划分处理,包括:
根据所述块划分策略从所述第二划分方式中确定用于对所述待编码单元进行块划分处理的所述二叉树划分方式;
按照所述二叉树划分方式对待编码单元进行块划分处理,得到所述待编码单元的M1个子块;所述M1的值是由所述二叉树划分方式所确定的;
所述方法还包括:
在所述M1个子块中遍历选取一个子块作为子块M1k,获取所述子块M1k的子划分方式,基于所述子划分方式确定所述子块M1k的划分深度,直到遍历完所述M1个子块中的每个子块时,得到所述M1个子块的划分深度;所述k为小于所述M1的整数;
根据所述M1个子块的划分深度以及所述块划分策略中的优化条件,确定所述二叉树划分方式对应的优化累计数量;
在所述优化累计数量达到所述块划分策略中的优化条件时,提前终止采用所述三叉树划分方式对所述待编码单元进行块划分处理。
8.一种视频编码装置,其特征在于,所述装置包括:
块划分策略确定模块,用于确定针对目标视频帧中的待编码单元的块划分策略;所述块划分策略至少包括第一划分方式和第二划分方式;所述第二划分方式为在所述第一划分方式之后的划分方式,且所述第二划分方式不同于所述第一划分方式;
子块划分模块,用于按照所述第一划分方式对待编码单元进行块划分处理,得到所述待编码单元的N1个子块;所述N1的值是由所述第一划分方式所确定的;
第一划分深度确定模块,用于在所述N1个子块中遍历选取一个子块作为子块N1i,获取所述子块N1i的子划分方式,基于所述子划分方式确定所述子块N1i的划分深度,直到遍历完所述N1个子块中的每个子块时,得到所述N1个子块的划分深度;所述i为小于所述N1的整数;
子块累计数量确定模块,用于根据所述N1个子块的划分深度以及所述块划分策略中的优化条件,确定所述第一划分方式对应的子块累计数量;
第一划分优化模块,用于在所述子块累计数量达到所述块划分策略中的优化条件时,提前终止采用所述第二划分方式对所述待编码单元进行块划分处理。
9.一种终端设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN202011306680.1A 2020-11-19 2020-11-19 视频编码方法、装置、终端设备以及存储介质 Active CN114520917B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011306680.1A CN114520917B (zh) 2020-11-19 2020-11-19 视频编码方法、装置、终端设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011306680.1A CN114520917B (zh) 2020-11-19 2020-11-19 视频编码方法、装置、终端设备以及存储介质

Publications (2)

Publication Number Publication Date
CN114520917A CN114520917A (zh) 2022-05-20
CN114520917B true CN114520917B (zh) 2024-02-23

Family

ID=81594179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011306680.1A Active CN114520917B (zh) 2020-11-19 2020-11-19 视频编码方法、装置、终端设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114520917B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223782A (zh) * 2005-05-18 2008-07-16 日本电气株式会社 内容显示系统和内容显示方法
CN111294599A (zh) * 2019-03-13 2020-06-16 北京达佳互联信息技术有限公司 视频解码方法、视频编码方法及装置
CN111669593A (zh) * 2020-07-27 2020-09-15 北京奇艺世纪科技有限公司 视频编码方法、装置、电子设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223782A (zh) * 2005-05-18 2008-07-16 日本电气株式会社 内容显示系统和内容显示方法
CN111294599A (zh) * 2019-03-13 2020-06-16 北京达佳互联信息技术有限公司 视频解码方法、视频编码方法及装置
CN111669593A (zh) * 2020-07-27 2020-09-15 北京奇艺世纪科技有限公司 视频编码方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN114520917A (zh) 2022-05-20

Similar Documents

Publication Publication Date Title
US9813716B2 (en) Video encoder and video encoding method
US11457222B2 (en) Method and apparatus for intra prediction of picture block
US7304590B2 (en) Arithmetic decoding apparatus and method
US10742989B2 (en) Variable frame rate encoding method and device based on a still area or a motion area
US9591323B2 (en) Codeword space reduction for intra chroma mode signaling for HEVC
CN109510987B (zh) 编码树节点划分方式的确定方法、装置及编码设备
US20210329252A1 (en) Motion information acquisition method and device for video encoding or decoding
JP2015526020A (ja) ビデオコーディング用の制限的なイントラデブロッキングフィルタ処理
CN113347416B (zh) 色度帧内预测方法和装置、及计算机存储介质
CN109005412B (zh) 运动矢量获取的方法及设备
CN114520916B (zh) 视频编码方法、装置、终端设备以及存储介质
US7680351B2 (en) Video deblocking method and apparatus
CN110278443B (zh) 划分标志位的上下文建模方法及装置
WO2019214373A1 (zh) 视频帧的编码单元划分方法、装置、存储介质及电子装置
CN114520917B (zh) 视频编码方法、装置、终端设备以及存储介质
US11323706B2 (en) Method and apparatus for aspect-ratio dependent filtering for intra-prediction
CN111654696B (zh) 一种帧内的多参考行预测方法、装置、存储介质及终端
CN116405665A (zh) 编码方法、装置、设备及存储介质
CN116866591A (zh) 一种图像编码方法、装置及计算机设备、介质
US20110293019A1 (en) Video processing system, computer program product and method for decoding an encoded video stream
CN112511843B (zh) 视频编码方法、装置、终端设备以及存储介质
CN112437307B (zh) 一种视频编码方法、装置、电子设备及介质
US20170188035A1 (en) Transcoding method and electronic apparatus
KR20220035108A (ko) 행렬 기반 인트라 예측을 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치
CN111918059A (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