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

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

Info

Publication number
CN111970508A
CN111970508A CN202010880222.2A CN202010880222A CN111970508A CN 111970508 A CN111970508 A CN 111970508A CN 202010880222 A CN202010880222 A CN 202010880222A CN 111970508 A CN111970508 A CN 111970508A
Authority
CN
China
Prior art keywords
video
coding
encoding
video picture
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010880222.2A
Other languages
English (en)
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 CN202010880222.2A priority Critical patent/CN111970508A/zh
Publication of CN111970508A publication Critical patent/CN111970508A/zh
Pending legal-status Critical Current

Links

Images

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本申请公开了一种视频编码方法、装置、计算机设备及存储介质。该方法包括:启动视频编码器,所述视频编码器用于对视频画面进行编码;获取第一编码参数,所述第一编码参数是满足第一编码条件的编码参数,所述第一编码条件是编码时长小于时长阈值,所述编码时长是所述视频编码器进行编码所用的时长;根据第一编码参数,对所述视频画面进行编码。通过本申请所示的方案,对于通过视频编码器进行视频编码时,可以采用满足编码时长小于时长阈值的编码参数对视频画面进行编码,避免了服务器始终采用固定参数对视频进行编码,减少了对视频进行编码所花费的时间,提高了视频编码出帧的稳定性。

Description

视频编码方法、装置、计算机设备及存储介质
技术领域
本申请涉及视频编码技术领域,特别涉及一种视频编码方法、装置、计算机设备及存储介质。
背景技术
随着移动互联网的不断发展,终端中需要显示的视频数据越来越多,其中包括游戏画面、游戏视频、直播视频等各种类型的视频数据。
在相关技术中,终端中显示的视频数据都是经过服务器侧的编码器进行编码后发送的,其中,在服务器侧进行编码时,服务器往往会采用固定的编码参数对视频进行编码,并将编码后的视频数据发送给终端,由终端进行显示。比如,在终端中显示游戏画面时,服务器可以根据接收到终端向服务器上传的逻辑动作,在服务器中渲染对应该逻辑动作的视频图像,并对该视频图像进行编码,将编码后的视频图像返回给终端。
然而,相关技术中由于服务器始终采用固定参数对视频进行编码,在服务器渲染的图像较为复杂时,使得服务器对视频进行编码所花费的时间也较长,影响了视频编码出帧的稳定性。
发明内容
本申请实施例提供了一种视频编码方法、装置、计算机设备及存储介质,可以提高视频编码出帧的稳定性,该技术方案如下:
一方面,本申请实施例提供了一种视频编码方法,所述方法包括:
启动视频编码器,所述视频编码器用于对视频画面进行编码;
获取第一编码参数,所述第一编码参数是满足预设编码条件的编码参数,所述预设编码条件是编码时长小于预设时长,所述编码时长是所述视频编码器进行编码所用的时长;
根据第一编码参数,对所述视频画面进行编码。
另一方面,本申请实施例提供了一种视频编码装置,所述装置包括:
编码器启动模块,用于启动视频编码器,所述视频编码器用于对视频画面进行编码;
编码参数获取模块,用于获取第一编码参数,所述第一编码参数是满足预设编码条件的编码参数,所述预设编码条件包括编码时长小于预设时长,所述编码时长是所述视频编码器进行编码所用的时长;
视频编码模块,用于根据第一编码参数,对所述视频画面进行编码。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述的视频编码方法。
又一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述的视频编码方法。
一个方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得所述计算机设备执行上述一个方面提供的视频编码方法。
本申请提供的技术方案可以包括以下有益效果:
通过本申请所示的方案,对于通过视频编码器进行视频编码时,可以采用满足编码时长小于时长阈值的编码参数对视频画面进行编码,避免了服务器始终采用固定参数对视频进行编码,减少了对视频进行编码所花费的时间,提高了视频编码出帧的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种视频流推送系统的结构示意图;
图2是本申请一示例性实施例涉及的一种云服务器以及终端的结构示意图;
图3是本申请一示例性实施例涉及的一种视频编码器的视频编码流程的流程示意图;
图4是本申请实施例提供的一种视频编码方法的方法流程图;
图5是本申请实施例提供的一种视频编码方法的方法流程图;
图6是本申请一示例性实施例涉及的服务器统计搜索次数的条形统计图;
图7是本申请一示例性实施例涉及的一种像素差值精度为四分之一的视频编码过程中提取到的视频画面的示意图;
图8是本申请一示例性实施例涉及的一种视频编码装置的结构方框示意图;
图9是根据一示例性实施例示出的一种计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:
1)云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
2)云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
3)传输流文件
传输流(Transport Stream,TS)文件是一种流媒体传输的文件格式。在TS文件中,视频编码的主要格式为H264或者mpeg4,音频编码的主要格式为acc/MP3。
4)H264
H264是由ITU-T(ITU Telecommunication Standardization Sector,国际电信联盟电信标准分局)视频编码专家组(VCEG,Video Coding Experts Group)和ISO(国际标准化组织,International Organization for Standardization)/IEC(InternationalEducation Consortium,美国精英大学联盟)动态图像专家组(MPEG,Moving PictureExperts Group)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。
5)X264
X264:是开源的H264视频编码器。
6)首屏时间
首屏时间是指从视频请求流开始到渲染出首帧画面的时间,也可称为首帧时间。
7)编码延迟
编码延迟是指从一帧图像输入编码器到输出编码后的一帧图像的时间。
8)量化
量化是指将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值的过程,在视频编码中是将DCT变换后的信号进行量化取值的过程。QP(QuantParam量化参数)越大,取的值越离散,还原原始信号的能力越低,反之越高。
9)DCT变换
DCT(Discrete Cosine Transform,离散余弦变换)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(Discrete Fourier Transform,DFT),但是只使用实数。
10)MV(Motion Vector)预测
MV预测是指通过搜索图像中合适的运动参考块,并根据该运动参考块计算出对应的运动向量。
11)熵编码
熵编码是编码过程中按熵原理不丢失任何信息的编码。信息熵为信源的平均信息量(不确定性的度量)。常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数,运动向量,头信息(宏块头,图象头,序列的头等)以及附加信息(对于正确解码来说重要的标记位信息)。
12)宏块,英文Macroblock,是视频编码技术中的一个基本概念。通过将画面分成一个个大小不同的块来来不同位置实行不同的压缩策略。在视频编码中,一个编码图像通常划分成若干宏块组成,一个宏块由一个亮度像素块和附加的两个色度像素块组成。一般来说,亮度块为16x16大小的像素块,而两个色度图像像素块的大小依据其图像的采样格式而定,如:对于YUV420采样图像,色度块为8x8大小的像素块。每个图象中,若干宏块被排列成片的形式,视频编码算法以宏块为单位,逐个宏块进行编码,组织成连续的视频码流。
图1是根据一示例性实施例示出的一种视频流推送系统的结构示意图。该系统包括:服务器110以及终端120。
服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端120可以是具有视频显示功能的终端设备,比如,终端可以是手机、平板电脑、笔记本电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
用户终端120与服务器110之间通过通信网络进行直接或间接地连接。可选的,通信网络是有线网络或无线网络。
可选地,上述的无线网络或者有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,MAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
请参考图2,其示出了本申请一示例性实施例涉及的一种云服务器以及终端的结构示意图。如图2所示,在云服务200中包含了云游戏引擎模块201,终端系统模块202,逻辑处理模块203,图像渲染模块204以及视频编码器205。在终端206中包含了视频解码器207以及图像显示模块208。
其中,终端206可以运行有云服务器200提供的云游戏,终端206可以通过上述通信网络向云服务器200发送逻辑动作,比如,终端206响应于对显示界面中的第一控件的触发操作,生成对应的逻辑动作,并发送给云服务器。相应的,云服务器200中的云游戏引擎模块201接收终端206发送的该逻辑动作,终端系统模块202可以确定出终端206对应的操作系统,比如安卓系统或IOS(iPhone Operation System,苹果操作系统),逻辑处理模块203可以用于对逻辑动作进行解析,图像渲染模块204可以渲染出与逻辑动作对应的游戏画面,视频编码器205可以用于对图像渲染模块204渲染出的游戏画面进行编码,从而使得云服务器200可以将编码后的视频数据发送给终端206。
相应的,终端206在接收视频数据后,可以根据视频解码器207对视频数据进行解码,并根据图像显示模块208在终端中显示出对应的游戏图像,从而完成云游戏的游戏画面展示。
在相关技术中,上述云服务器中包含的视频编码器在对视频图像进行编码时,其通常采用固定的编码参数对视频进行编码,并将编码后的视频数据发送给终端,由终端进行显示。比如,在终端中显示游戏画面时,服务器可以根据接收到终端向服务器上传的逻辑动作,在服务器中渲染对应该逻辑动作的视频图像,并按照固定的编码参数对该视频图像进行编码,将编码后的视频图像返回给终端。
请参考图3,其示出了本申请一示例性实施例涉及的一种视频编码器的视频编码流程的流程示意图。如图3所示,该视频编码流程可以包括如下几个步骤:
步骤301,对视频画面进行预分析。
其中,在对视频画面进行预分析的过程中,包括对该视频画面进行编码时占用内存大小的预算以及参考帧的确定。
步骤302,对视频画面进行编码。
其中,在编码过程中,包括计算视频画面的运动向量MV以及实际占用内存大小的计算。
步骤303,对视频画面进行DCT变换。
步骤304,对DCT变换后的视频画面进行量化。
步骤305,对量化后的视频画面进行熵编码。
步骤306,对熵编码的视频画面进行封装。
步骤307,对量化后的视频画面进行反量化。
步骤308,对反量化后的视频画面进行反DCT变换。
步骤309,对反DCT变换后的视频画面进行图像恢复处理。
步骤310,对图像恢复处理后的视频画面去块。
步骤311,将去块后的视频画面插入至参考帧队列中。
可选地,上述采用固定的编码参数可以如下:-preset:v superfast-tunezerolatency-profile:v main-vcodec libx264-x264opts threads=1:bitrate=3000:vbv-maxrate=3000:vbv-bufsize=3000:ref=1:vbv-init=0.5:rate tol=0.1:qpmax=45:qpmin=20:level=42:bframes=0:keyint=120:sliced-threads=0:intra-refresh=1:slices=1:subme=2。
其中,-preset:v superfast表示preset这个参数是superfast。-tunezerolatency表示tune的类型是zerolatency。-profile:v main表示profile类型是main。threads=1表示编码线程个数,bitrate=3000表示目标码率,vbv-maxrate=3000表示最大码率,vbv-bufsize=3000表示最大编码缓冲区大小,ref=1表示参考帧个数,vbv-init=0.5表示初始化码率比例,ratetol=0.1表示码率浮动比例,qpmax=45表示量化qp的最大值,qpmin=20表示量化qp的最小值,level=42表示量化程度,bframes=0表示b帧个数,keyint=120表示关键帧出现间隔,sliced-threads=0表示不是sliced编码,intra-refresh=1表示开启intra-refresh,slices=1表示一帧视频中的slice个数,subme=2表示运动补偿等级。
在实际应用中,由于终端中需要显示的图像复杂程度不同,云服务器由图像渲染模块渲染出的图像复杂程度也不同,对于具有不同的图像复杂程度的图像来说,云服务器的视频编码模块得到编码后的视频图像所要花费的时长也不同,从而影响了云服务器对图像复杂程度高的图像帧进行视频编码的效率,降低了视频编码的效率。
为了解决上述相关技术中存在的技术问题,本申请实施例提供了一种视频编码方法,请参考图4,其示出了本申请实施例提供的一种视频编码方法的方法流程图,该方法可以用于上述图1所示的系统结构中,由该系统中的服务器执行,如图4所示,该方法可以包括如下步骤:
步骤401,启动视频编码器,视频编码器用于对视频画面进行编码。
其中,服务器中可以包含视频编码器,当需要对渲染的视频画面进行编码时,可以启动该视频编码器,从而对视频画面进行编码。
步骤402,获取第一编码参数,第一编码参数是满足第一编码条件的编码参数。
其中,第一编码条件是编码时长小于时长阈值,编码时长是视频编码器进行编码所用的时长。时长阈值可以是视频编码器采用默认编码参数进行视频编码时需要的时长。
步骤403,根据第一编码参数,对视频画面进行编码。
即,服务器按照第一编码参数对渲染的视频画面进行编码。
综上所述,通过本申请所示的方案,对于通过视频编码器进行视频编码时,可以采用满足编码时长小于时长阈值的编码参数对视频画面进行编码,避免了服务器始终采用固定参数对视频进行编码,减少了对视频进行编码所花费的时间,提高了视频编码出帧的稳定性。
在一种可能实现的方式中,上述第一编码参数可以包括搜索运动参考块的搜索方式、搜索运动参考块的搜索范围以及像素差值精度中的一种或多种,其中,运动参考块是视频画面中目标宏块的参考块,像素差值精度用于指示提取视频画面中的像素占视频画面总像素的比例。
请参考图5,其示出了本申请实施例提供的一种视频编码方法的方法流程图,该方法可以用于上述图1所示的系统结构中,由该系统中的服务器执行,如图5所示,该方法可以包括如下步骤:
步骤501,启动视频编码器,视频编码器用于对视频画面进行编码。
其中,服务器可以由上述图像渲染模块生成视频画面后,生成对应的视频编码请求,该视频编码请求用于启动该视频编码器,并使得视频编码器对渲染的视频画面进行编码。
步骤502,根据视频画面,获取与视频画面对应的时长阈值。
其中,服务器对不同复杂程度的视频画面进行编码时会存在不同的编码时长,服务器可以提前将这些视频画面以及时长阈值建立对应的对应关系表,当渲染出的视频画面时,服务器可以根据该对应关系表获取到与该视频画面对应的时长阈值。其中,对应关系表中的时长阈值可以是服务器在默认编码参数下对各个视频画面进行编码后对应的的编码时长。
步骤503,根据时长阈值,获取第一编码参数,第一编码参数是满足第一编码条件的编码参数,第一编码条件包括编码时长小于时长阈值,编码时长是视频编码器进行编码所用的时长。
可选地,服务器中可以预先存储有第一编码参数,该第一编码参数满足第一编码条件,即,服务器中对于同一视频画面按照第一编码参数进行编码时,服务器花费的编码时间小于时长阈值,也就是说,小于服务器按照默认编码参数进行编码所花费的时间。
步骤504,根据第一编码参数,对视频画面进行编码。
其中,第一编码参数包括搜索运动参考块的搜索方式,运动参考块是视频画面中目标宏块的参考块;服务器可以根据搜索方式,搜索视频画面对应的运动参考块;根据视频画面对应的运动参考块,计算视频画面对应的运动向量,运动向量用于指示目标宏块的移动矢量;根据视频画面对应的运动向量,对视频画面进行编码。可选地,搜索方式可以是六边形搜索、菱形搜索等。
在一种可能实现的方式中,服务器还可以统计搜索次数,搜索次数是搜索视频画面对应的运动参考块的次数;根据搜索次数,获取搜索次数阈值;根据搜索方式,按照搜索次数阈值搜索视频画面对应的运动参考块。
请参考图6,其示出了本申请一示例性实施例涉及的服务器统计搜索次数的条形统计图。如图6所示,在每次统计后,服务器可以得到搜索视频画面对应的运动参考块的次数,本方案可以选择从搜索次数最大的统计次数开始记录,将搜索次数大于一个固定值的占比超过20%,将这个固定值将作为搜索次数阈值。在图6中得到的搜索次数阈值为5。
可选的,第一编码参数还包括搜索运动参考块的搜索范围;在搜索范围内,根据搜索方式,搜索视频画面对应的运动参考块。其中,搜索范围可以通过搜索方式中搜索点的位置到搜索中心的距离表示。比如,上述搜索方式是六边形搜索,该搜索范围为6像素,那么,说明从搜索点的位置到六边形的中心距离为6像素,从而实现对搜索范围的限定。
可选的,第一编码参数包括像素差值精度,像素差值精度用于指示提取视频画面中的像素占视频画面总像素的比例;服务器还可以根据像素差值精度,确定对视频画面编码时采用的视频画面中的各个目标像素;根据各个目标像素,计算视频画面的图像交流能量值,图像交流能量值用于指示视频画面的复杂度;根据图像交流能量值,对视频画面进行编码。
即,在图像编码过程中,涉及到对视频画面的像素提取,从视频画面中提取像素差值精度的像素点形成新的视频画面,并计算该新的视频画面的图像交流能量值。比如,该像素差值精度为四分之一,那么对于矩形的视频画面来说,服务器可以按照各个边长的二分之一提取视频画面,得到提取到的视频画面。
例如,第一编码参数可以如下:
inter=X264_ANALYSE_4x4,帧间参数为X264_ANALYSE_14x4;
me_method=X264_ME_DIA,搜索方式函数为X264_ME_DIA;
subpel_refine=1,搜索范围值为1;
deblocking_filter=0,去块滤波为0。
请参考图7,其示出了本申请一示例性实施例涉及的一种像素差值精度为四分之一的视频编码过程中提取到的视频画面的示意图。如图6所示,箭头所指的视频画面为按照1/4像素差值精度提取到的视频画面结果。
步骤505,获取第一画面数量,第一画面数量是按照第一编码参数进行编码的视频画面数量。
即,服务器可以统计按照第一编码参数进行编码的视频画面的数量。
步骤506,响应于第一画面数量大于数量阈值,获取第二编码参数,第二编码参数是满足第二编码条件的编码参数。
其中,第二编码条件是编码质量高于质量阈值。在上述第一画面数量大于数量阈值时,获取第二编码参数。比如,数量阈值为60帧,在60帧后,服务器可以获取第二编码参数。
例如,第二编码参数可以如下:
inter=
X264_ANALYSE_|4x4|*264_A
NALYSE_PSUB|16*16|*264_A
NALYSE_BSUB16*16;
me_method=X264_ME_HEX;
subpel_refine=2;
deblocking_filter=1。
步骤507,根据第二编码参数,对后续的视频画面进行编码。
即,在上述第一画面数量大于数量阈值时,将第一编码参数转换为第二编码参数,从而按照第二编码参数对后续的视频画面进行编码。
请参考表1,其示出了本申请一示例性实施例涉及的一种视频质量的对比表。
Figure BDA0002653903530000121
表1
其中,表1是对6个不同的云游戏进行测试的结果,其中本方案中灵活采用编码参数可以提高0.26%的PSNR(Peak Signal to Noise Ratio,峰值信噪比)。
请参考表2,其示出了本申请一示例性实施例涉及的另一种视频质量的对比表。
Figure BDA0002653903530000122
表2
其中,表2是对6个不同的云游戏进行测试的结果,其中本方案中灵活采用编码参数可以提高0.20%的SSIM(Structural SIMilarity,结构相似性)。
请参考表3,其示出了本申请一示例性实施例涉及的另一种视频质量的对比表。
Figure BDA0002653903530000123
表3
其中,表3是对6个不同的云游戏进行测试的结果,其中本方案中灵活采用编码参数可以提高0.46%的VMAF(Video Multi-method Assessment Fusion,视频多方法评估融合参数)。
综上所述,通过本申请所示的方案,对于通过视频编码器进行视频编码时,可以采用满足编码时长小于时长阈值的编码参数对视频画面进行编码,避免了服务器始终采用固定参数对视频进行编码,减少了对视频进行编码所花费的时间,提高了视频编码出帧的稳定性。
另外,通过像素差值精度计算视频画面的AC能量,并将该AC能量作为后续量化过程中自适应量化因子,可以视频编码的降低整体延迟。
另外,本方案还通过切换不同的编码参数,实现视频编码过程中对首帧延迟的降低,实现了在视频编码过程中保证视频质量的条件下提高降低首帧延迟的效果。
请参考图8,其示出了本申请一示例性实施例涉及的一种视频编码装置的结构方框示意图。该视频编码装置可以用于服务器中,以执行图4或图5对应实施例所示的方法中由服务器执行的全部或者部分步骤。该视频编码装置可以包括如下模块:
编码器启动模块801,用于启动视频编码器,所述视频编码器用于对视频画面进行编码;
编码参数获取模块802,用于获取第一编码参数,所述第一编码参数是满足预设编码条件的编码参数,所述预设编码条件包括编码时长小于预设时长,所述编码时长是所述视频编码器进行编码所用的时长;
视频编码模块803,用于根据第一编码参数,对所述视频画面进行编码。
所述第一编码参数包括搜索运动参考块的搜索方式,所述运动参考块是所述视频画面中目标宏块的参考块;
可选地,所述视频编码模块803,包括:第一搜索单元,第一计算单元和第一编码单元;
所述第一搜索单元,用于根据所述搜索方式,搜索所述视频画面对应的所述运动参考块;
所述第一计算单元,用于根据所述视频画面对应的所述运动参考块,计算所述视频画面对应的运动向量,所述运动向量用于指示所述目标宏块的移动矢量;
所述第一编码单元,用于根据所述视频画面对应的运动向量,对所述视频画面进行编码。
可选地,所述第一编码参数还包括搜索所述运动参考块的搜索范围;
所述第一搜索单元,还用于在所述搜索范围内,根据所述搜索方式,搜索所述视频画面对应的所述运动参考块。
可选地,所述第一编码参数包括像素差值精度,所述像素差值精度用于指示提取所述视频画面中的像素占所述视频画面总像素的比例;
所述视频编码模块803,还包括:第一确定单元,第二计算单元和第二编码单元;
所述第一确定单元,用于根据所述像素差值精度,确定对所述视频画面编码时采用的所述视频画面中的各个目标像素;
所述第二计算单元,用于根据所述各个目标像素,计算所述视频画面的图像交流能量值;
所述第二编码单元,用于根据所述图像交流能量值,对所述视频画面进行编码。
可选地,所述装置还包括:
数量获取模块,用于在所述视频编码模块803根据第一编码参数,对所述视频画面进行编码之后,获取第一画面数量,所述第一画面数量是按照所述第一编码参数进行编码的视频画面数量;
第二参数获取模块,用于响应于所述第一画面数量大于数量阈值,获取第二编码参数,所述第二编码参数是满足第二编码条件的编码参数,所述第二编码条件包括编码质量高于质量阈值;
第一编码模块,用于根据所述第二编码参数,对后续的视频画面进行编码。
可选地,所述装置还包括:
次数统计模块,用于统计搜索次数,所述搜索次数是搜索所述视频画面对应的所述运动参考块的次数;
阈值获取模块,用于根据所述搜索次数,获取搜索次数阈值;
所述根据所述搜索方式,搜索所述视频画面对应的所述运动参考块,包括:
根据所述搜索方式,按照所述搜索次数阈值搜索所述视频画面对应的所述运动参考块。
可选地,所述编码参数获取模块,包括:第一获取单元和第二获取单元;
所述第一获取单元,用于根据所述视频画面,获取与所述视频画面对应的时长阈值;
所述第二获取单元,用于根据所述时长阈值,获取所述第一编码参数。
综上所述,通过本申请所示的方案,对于通过视频编码器进行视频编码时,可以采用满足编码时长小于时长阈值的编码参数对视频画面进行编码,避免了服务器始终采用固定参数对视频进行编码,减少了对视频进行编码所花费的时间,提高了视频编码出帧的稳定性。
图9是本申请一个示例性实施例示出的计算机设备900的结构框图。所述计算机设备900包括中央处理单元(Central Processing Unit,CPU)901、包括随机存取存储器(Random Access Memory,RAM)902和只读存储器(Read Only Memory,ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述计算机设备900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output系统,I/O系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。
所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为计算机设备900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读存储器)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。
计算机设备900可以通过连接在所述系统总线905上的网络接口单元911连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理单元901通过执行该一个或一个以上程序来实现图4或图5任一所示的方法中由服务器执行的全部或者部分步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法中,由服务器或者用户终端执行的方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种视频编码方法,其特征在于,所述方法包括:
启动视频编码器,所述视频编码器用于对视频画面进行编码;
获取第一编码参数,所述第一编码参数是满足第一编码条件的编码参数,所述第一编码条件包括编码时长小于时长阈值,所述编码时长是所述视频编码器进行编码所用的时长;
根据第一编码参数,对所述视频画面进行编码。
2.根据权利要求1所述的方法,其特征在于,所述第一编码参数包括搜索运动参考块的搜索方式,所述运动参考块是所述视频画面中目标宏块的参考块;
所述根据第一编码参数,对所述视频画面进行编码,包括:
根据所述搜索方式,搜索所述视频画面对应的所述运动参考块;
根据所述视频画面对应的所述运动参考块,计算所述视频画面对应的运动向量,所述运动向量用于指示所述目标宏块的移动矢量;
根据所述视频画面对应的运动向量,对所述视频画面进行编码。
3.根据权利要求2所述的方法,其特征在于,所述第一编码参数还包括搜索所述运动参考块的搜索范围;
所述根据所述搜索方式,搜索所述视频画面对应的所述运动参考块,包括:
在所述搜索范围内,根据所述搜索方式,搜索所述视频画面对应的所述运动参考块。
4.根据权利要求1所述的方法,其特征在于,所述第一编码参数包括像素差值精度,所述像素差值精度用于指示提取所述视频画面中的像素占所述视频画面总像素的比例;
所述根据第一编码参数,对所述视频画面进行编码,包括:
根据所述像素差值精度,确定对所述视频画面编码时采用的所述视频画面中的各个目标像素;
根据所述各个目标像素,计算所述视频画面的图像交流能量值;
根据所述图像交流能量值,对所述视频画面进行编码。
5.根据权利要求1所述的方法,其特征在于,在所述根据第一编码参数,对所述视频画面进行编码之后,还包括:
获取第一画面数量,所述第一画面数量是按照所述第一编码参数进行编码的视频画面数量;
响应于所述第一画面数量大于数量阈值,获取第二编码参数,所述第二编码参数是满足第二编码条件的编码参数,所述第二编码条件包括编码质量高于质量阈值;
根据所述第二编码参数,对后续的视频画面进行编码。
6.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
统计搜索次数,所述搜索次数是搜索所述视频画面对应的所述运动参考块的次数;
根据所述搜索次数,获取搜索次数阈值;
所述根据所述搜索方式,搜索所述视频画面对应的所述运动参考块,包括:
根据所述搜索方式,按照所述搜索次数阈值搜索所述视频画面对应的所述运动参考块。
7.根据权利要求1所述的方法,其特征在于,所述获取第一编码参数,包括:
根据所述视频画面,获取与所述视频画面对应的时长阈值;
根据所述时长阈值,获取所述第一编码参数。
8.一种视频编码装置,其特征在于,所述装置包括:
编码器启动模块,用于启动视频编码器,所述视频编码器用于对视频画面进行编码;
编码参数获取模块,用于获取第一编码参数,所述第一编码参数是满足预设编码条件的编码参数,所述预设编码条件是编码时长小于预设时长,所述编码时长是所述视频编码器进行编码所用的时长;
视频编码模块,用于根据第一编码参数,对所述视频画面进行编码。
9.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的视频编码方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的视频编码方法。
CN202010880222.2A 2020-08-27 2020-08-27 视频编码方法、装置、计算机设备及存储介质 Pending CN111970508A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010880222.2A CN111970508A (zh) 2020-08-27 2020-08-27 视频编码方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010880222.2A CN111970508A (zh) 2020-08-27 2020-08-27 视频编码方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN111970508A true CN111970508A (zh) 2020-11-20

Family

ID=73401233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010880222.2A Pending CN111970508A (zh) 2020-08-27 2020-08-27 视频编码方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111970508A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113286140A (zh) * 2021-05-11 2021-08-20 北京飞讯数码科技有限公司 一种视频编解码测试方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113286140A (zh) * 2021-05-11 2021-08-20 北京飞讯数码科技有限公司 一种视频编解码测试方法、装置及存储介质
CN113286140B (zh) * 2021-05-11 2022-09-02 北京飞讯数码科技有限公司 一种视频编解码测试方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US11451787B2 (en) Method and apparatus for video encoding and decoding
CN111711824B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
US9762917B2 (en) Quantization method and apparatus in encoding/decoding
US11558639B2 (en) Selective resolution video encoding method, computer device, and readable storage medium
CN110198492B (zh) 一种视频的水印添加方法、装置、设备及存储介质
US9414086B2 (en) Partial frame utilization in video codecs
EP3571841B1 (en) Dc coefficient sign coding scheme
CN113766249B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
US8594189B1 (en) Apparatus and method for coding video using consistent regions and resolution scaling
CN113497937B (zh) 图像编码方法、图像解码方法及相关装置
WO2023040600A1 (zh) 图像编码方法、图像解码方法、装置、电子设备及介质
US9955168B2 (en) Constraining number of bits generated relative to VBV buffer
US8891616B1 (en) Method and apparatus for entropy encoding based on encoding cost
JP2022548354A (ja) ビデオ復号方法、ビデオ符号化方法、装置、機器及び記憶媒体
CN111182310A (zh) 视频处理方法、装置、计算机可读介质及电子设备
EP3552395B1 (en) Motion compensation techniques for video
KR20180021942A (ko) 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
WO2024078066A1 (zh) 视频解码方法、视频编码方法、装置、存储介质及设备
KR20170125154A (ko) 곡선 화면 내 예측을 사용하는 비디오 복호화 방법 및 장치
CN111970508A (zh) 视频编码方法、装置、计算机设备及存储介质
US9247257B1 (en) Segmentation based entropy encoding and decoding
US20120218440A1 (en) Visually optimized quantization
US20160330469A1 (en) Methods and apparatus for optical blur modeling for improved video encoding
WO2021263251A1 (en) State transition for dependent quantization in video coding
CN113225558A (zh) 平滑定向和dc帧内预测

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