CN114374843A - 基于预测模式选择的直播视频编码方法及计算机设备 - Google Patents

基于预测模式选择的直播视频编码方法及计算机设备 Download PDF

Info

Publication number
CN114374843A
CN114374843A CN202210287650.3A CN202210287650A CN114374843A CN 114374843 A CN114374843 A CN 114374843A CN 202210287650 A CN202210287650 A CN 202210287650A CN 114374843 A CN114374843 A CN 114374843A
Authority
CN
China
Prior art keywords
coding block
prediction mode
information corresponding
coding
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210287650.3A
Other languages
English (en)
Other versions
CN114374843B (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.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN202210287650.3A priority Critical patent/CN114374843B/zh
Publication of CN114374843A publication Critical patent/CN114374843A/zh
Application granted granted Critical
Publication of CN114374843B publication Critical patent/CN114374843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/182Methods 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
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting

Landscapes

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

Abstract

本申请涉及网络直播技术领域和视频编码技术领域,提出一种基于预测模式选择的直播视频编码方法及计算机设备,该方法包括:在第一帧间预测模式下获取第一直播图像中各个第一编码块对应的目标参考块,判断第一编码块是否满足预设的模式选择条件;若是,选择第一编码块对应的目标预测模式为第一帧间预测模式;若否,获取各个预测模式下第一编码块对应的率失真优化信息,根据各个预测模式下第一编码块对应的率失真优化信息,得到第一编码块对应的目标预测模式;获取第二编码块对应的目标预测模式,在各个编码块对应的目标预测模式下对编码块进行编码,得到编码后的直播视频。相对于现有技术,本申请能够提升直播视频的编码效率,提高用户的直播体验。

Description

基于预测模式选择的直播视频编码方法及计算机设备
技术领域
本申请实施例涉及网络直播技术领域和视频编码技术领域,尤其涉及一种基于预测模式选择的直播视频编码方法及计算机设备。
背景技术
随着直播行业的快速发展,越来越多的互联网平台开始提供直播服务,以吸引用户在直播间内进行网络直播互动。
直播服务包括视频直播服务和语音直播服务,其中,视频直播服务过程中,用户在客户端所观看的视频内容称为直播视频,直播视频在播放时的清晰度和流畅度会直接影响用户的直播体验。
网络直播场景下客户端可分为主播客户端和观众客户端,主播开启网络直播后会触发主播客户端采集直播视频,主播客户端对直播视频进行编码后,将编码后的直播视频发送至服务器,观众客户端再从服务器拉取编码后的直播视频,进行解码播放。在上述过程中,对直播视频进行编码是保证直播视频的清晰度和流畅度,提高用户直播体验的重要环节。
目前,视频编码大多是基于HECV标准展开的,例如:用于视频编码的基于HEVC标准的X265编码器。但是,由于基于HECV标准的视频编码方式的复杂度相对较高且效率相对较低,因而,难以在网络直播场景中,承载当今用户关于直播视频播放清晰度以及流畅度的更高需求,无法进一步提升用户的直播体验。
发明内容
本申请实施例提供了一种基于预测模式选择的直播视频编码方法及计算机设备,可以解决直播视频编码复杂度较高且编码效率较低,无法在保证直播视频播放清晰度的情况下,提高直播视频播放流畅度的技术问题,该技术方案如下:
第一方面,本申请实施例提供了一种基于预测模式选择的直播视频编码方法,包括步骤:
获取直播视频;其中,所述直播视频中包括若干帧直播图像,所述直播图像分为第一直播图像和第二直播图像,所述第二直播图像的帧类型为关键帧;
在第一帧间预测模式下获取所述第一直播图像中各个第一编码块对应的目标参考块,根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息;其中,所述第一编码块为划分所述第一直播图像得到的,所述第一子编码块为划分所述第一编码块得到的;
根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件;若是,选择所述第一编码块对应的目标预测模式为所述第一帧间预测模式;若否,获取各个预测模式下所述第一编码块对应的率失真优化信息,根据各个所述预测模式下所述第一编码块对应的率失真优化信息,得到所述第一编码块对应的目标预测模式;
获取各个帧内预测模式下所述第二直播图像中各个第二编码块对应的率失真优化信息,根据各个所述帧内预测模式下所述第二编码块对应的率失真优化信息,得到所述第二编码块对应的目标预测模式;其中,所述第二编码块为划分所述第二直播图像得到的;
在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频;其中,所述编码块包括所述第一编码块和所述第二编码块,所述目标预测模式下所述编码块对应的率失真优化信息最小。
第二方面,本申请实施例提供了一种基于预测模式选择的直播视频编码装置,包括:
第一获取单元,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像,所述直播图像分为第一直播图像和第二直播图像,所述第二直播图像的帧类型为关键帧;
第二获取单元,用于在第一帧间预测模式下获取所述第一直播图像中各个第一编码块对应的目标参考块,根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息;其中,所述第一编码块为划分所述第一直播图像得到的,所述第一子编码块为划分所述第一编码块得到的;
第一模式选择单元,用于根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件;若是,选择所述第一编码块对应的目标预测模式为所述第一帧间预测模式;若否,获取各个预测模式下所述第一编码块对应的率失真优化信息,根据各个所述预测模式下所述第一编码块对应的率失真优化信息,得到所述第一编码块对应的目标预测模式;
第二模式选择单元,用于获取各个帧内预测模式下所述第二直播图像中各个第二编码块对应的率失真优化信息,根据各个所述帧内预测模式下所述第二编码块对应的率失真优化信息,得到所述第二编码块对应的目标预测模式;其中,所述第二编码块为划分所述第二直播图像得到的;
第一编码单元,用于在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频;其中,所述编码块包括所述第一编码块和所述第二编码块,所述目标预测模式下所述编码块对应的率失真优化信息最小。
第三方面,本申请实施例提供了一种计算机设备,处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述方法的步骤。
在本申请实施例中,获取包括若干帧直播图像的直播视频,针对帧类型为非关键帧的第一直播图像,先在第一帧间预测模式下获取该第一直播图像中各个第一编码块对应的目标参考块,根据第一编码块对应的目标参考块,获取第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息,上述信息能够反应出在第一帧间预测模式下对于第一编码块的预测情况以及第一编码块的色彩特性,因而可以根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件,若是,则可以直接选择第一帧间预测模式作为该第一编码块对应的目标预测模式,从而省略了在各个预测模式下,关于该第一编码块对应的率失真优化信息的计算过程,并且由于在第一帧间预测模式下编码传输的数据较少,还可以减少编码该第一编码块所需的比特信息,进而大幅度降低了直播视频的编码复杂度,提升了直播视频的编码效率,能够在保证直播视频播放清晰度的情况下,改善直播视频的播放流畅度,提高用户的直播体验。
为了更好地理解和实施,下面结合附图详细说明本申请的技术方案。
附图说明
图1为本申请实施例提供的基于预测模式选择的直播视频编码方法的应用场景示意图;
图2为本申请实施例提供的基于预测模式选择的直播视频编码方法的另一应用场景示意图;
图3为本申请第一实施例提供的基于预测模式选择的直播视频编码方法的流程示意图;
图4为本申请第一实施例提供的基于预测模式选择的直播视频编码方法中S102的流程示意图;
图5为本申请第一实施例提供的基于预测模式选择的直播视频编码方法中S103的流程示意图;
图6为本申请第一实施例提供的基于预测模式选择的直播视频编码方法中S103的另一流程示意图;
图7为本申请第一实施例提供的基于预测模式选择的直播视频编码方法中S105的流程示意图;
图8为本申请第二实施例提供的基于预测模式选择的直播视频编码装置的结构示意图;
图9为本申请第三实施例提供的计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”/“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本领域技术人员可以理解,本申请所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的计算机设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,图1为本申请实施例提供的基于预测模式选择的直播视频编码方法的应用场景示意图,该应用场景包括本申请实施例提供的主播客户端101、服务器102和观众客户端103,主播客户端101与观众客户端103通过服务器102进行交互。
本申请实施例提出的客户端包括该主播客户端101和该观众客户端103。
需要指出的是,在现有技术中会存在对“客户端”这一概念的多种理解,例如:可以将其理解为安装在计算机设备中的应用程序,或者,也可以将其理解为相对应于服务器的硬件设备。
在本申请实施例中,所称的“客户端”是指相对应于服务器的硬件设备,更具体来说,是指计算机设备,例如:智能手机、智能交互平板以及个人计算机等。
在客户端为智能手机、智能交互平板等移动设备时,用户可以在客户端上安装匹配的移动端应用程序,也可以在客户端上访问Web端应用程序。
在客户端为个人计算机(PC机)等非移动设备时,用户可以在客户端上安装匹配的PC端应用程序,同样也可以在客户端上访问Web端应用程序。
其中,移动端应用程序是指可安装在移动设备中的应用程序,PC端应用程序是指可安装在非移动设备中的应用程序,Web端应用程序是指需通过浏览器访问的应用程序。
具体地,Web端应用程序依据客户端类型的差异,又可以分为移动版本和PC版本,两者的页面布局方式以及可提供的服务器支持可能存在差别。
在本申请实施例中,提供至用户的直播应用程序的类型分为移动端直播应用程序、PC端直播应用程序和Web端直播应用程序。用户可以依据其采用客户端的类型不同,自主选择其参与网络直播的方式。
本申请依据采用客户端的用户身份的不同,可以将客户端分为主播客户端101和观众客户端103。
其中,主播客户端101是指发送网络直播视频的一端,通常来说是网络直播中主播(即,直播主播用户)所采用的客户端。
观众客户端103是指接收和观看网络直播视频的一端,通常来说是网络直播中观看视频的观众(即,直播观众用户)所采用的客户端。
主播客户端101和观众客户端103所指向的硬件,本质上是指计算机设备,具体地,如图1所示,其可以是智能手机、智能交互平板和个人计算机等类型的计算机设备。主播客户端101和观众客户端103均可以通过公知的网络接入方式接入互联网,与服务器102建立数据通信链路。
服务器102作为一个业务服务器,其可以负责进一步连接起相关音频数据服务器、视频流服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备,例如图1中所示的主播客户端101和观众客户端103提供服务。
本申请实施例中,主播客户端101与观众客户端103可以加入同一个直播间(即直播频道),上述的直播间是指依靠互联网技术实现的一种聊天室,通常具备音视频播控功能。主播用户通过主播客户端101在直播间内进行直播,观众客户端103的观众可以登录服务器102进入直播间观看上直播。
具体地,主播通过主播客户端101登录服务器102,触发主播客户端101加载开播界面,该开播界面中显示有开播控件,主播可以通过点击开播控件开启直播,若当前处于视频直播模式,则会触发主播客户端101采集直播视频。
其中,直播视频为与主播客户端101建立数据连接的摄像头采集的视频数据,该摄像头可以为主播客户端101的自带摄像头,也可以为主播客户端101的外接摄像头。
主播客户端101对采集的直播视频进行编码,并将编码后的直播视频推流至服务器102中。
若观众通过观众客户端103进入该主播所创建的直播间,则会触发观众客户端103从服务器102中拉取编码后的直播视频,并在解码后输出至直播间界面中,以使观众可以在直播间内观看直播视频。
关于进入该主播所创建的直播间的方式在此不进行限定,观众可以通过直播间推荐页面、手动搜索直播间以及上下滑动直播间界面等方式进入该主播所创建的直播间。
请参阅图2,图2为本申请实施例提供的基于预测模式选择的直播视频编码方法的另一应用场景示意图。在图2中,该服务器102为服务器集群,服务器集群中至少包括业务服务器1021和流媒体服务器1022,业务服务器1021负责提供与直播业务逻辑相关的服务,流媒体服务器1022负责提供与流媒体数据相关的服务,该直播视频即为一种流媒体数据。
与主播客户端101建立数据连接的摄像头采集直播视频,主播客户端101对直播视频进行编码后,将编码后的直播视频推流至流媒体服务器1022,观众客户端103加入该主播所创建的直播间后,从流媒体服务器1022拉取编码后的直播视频。
在本申请实施例中,由于直播视频的编码质量以及编码效率,会直接影响播放直播视频时的清晰度和流畅度,因此,本申请实施例提供了一种基于预测模式选择的直播视频编码方法。
请参阅图3,图3为本申请第一实施例提供的基于预测模式选择的直播视频编码方法的流程示意图,该方法包括如下步骤:
S101:获取直播视频;其中,直播视频中包括若干帧直播图像,直播图像分为第一直播图像和第二直播图像,第二直播图像的帧类型为关键帧。
S102:在第一帧间预测模式下获取第一直播图像中各个第一编码块对应的目标参考块,根据第一编码块对应的目标参考块,得到第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息;其中,第一编码块为划分第一直播图像得到的,第一子编码块为划分第一编码块得到的。
S103:根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件;若是,选择第一编码块对应的目标预测模式为第一帧间预测模式;若否,获取各个预测模式下第一编码块对应的率失真优化信息,根据各个预测模式下第一编码块对应的率失真优化信息,得到第一编码块对应的目标预测模式。
S104:获取各个帧内预测模式下第二直播图像中各个第二编码块对应的率失真优化信息,根据各个帧内预测模式下第二编码块对应的率失真优化信息,得到第二编码块对应的目标预测模式;其中,第二编码块为划分第二直播图像得到的。
S105:在各个编码块对应的目标预测模式下对编码块进行编码,得到编码后的直播视频;其中,编码块包括第一编码块和第二编码块,目标预测模式下编码块对应的率失真优化信息最小。
在本实施例中,是以主播客户端为执行主体对基于预测模式选择的直播视频编码方法进行描述的。
关于步骤S101,主播客户端获取直播视频。
该直播视频为与主播客户端建立数据连接的摄像头所采集的视频数据,其中,该摄像头可以为主播客户端的自带摄像头,也可以为主播客户端的外接摄像头。
该直播视频中包含了若干帧直播图像,直播图像分为第一直播图像和第二直播图像,第二直播图像的帧类型为关键帧。
在视频编码技术领域中,帧类型包括关键帧(I帧)、差别帧(P帧)以及双向差别帧(B帧)。
在本申请实施例中,第二直播图像的帧类型为关键帧,第一直播图像为除第二直播图像以外的直播图像,可以理解为,第一在直播图像的帧类型为非关键帧,即非I帧。
关于步骤S102,主播客户端在第一帧间预测模式下获取第一直播图像中各个第一编码块对应的目标参考块,根据第一编码块对应的目标参考块,得到第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息。
其中,第一编码块是划分第一直播图像得到的,第一子编码块为划分第一编码块得到的。
在一个可选的实施例中,划分第一编码块的尺寸可以为64x64,得到64x64的第一编码块,也即,第一编码块由64行64列的像素点构成。
划分第一子编码块的尺寸为8x8,得到8x8的第一子编码块,也即,第一子编码块由8行8列的像素点构成。
在视频编码技术领域中,预测模式分为帧间预测模式和帧内预测模式。
在一个可选的实施例中,帧间预测模式包括Skip模式、Merge模式以及Inter模式,帧内预测模式包括35种,分别为DC模式,Planar模式和33种角度模式。
不同的预测模式均用于确定各个编码块对应的目标参考块,从而根据目标参考块中参考像素点的像素值,获取编码块中像素点的预测像素值。
针对帧内预测模式来说,编码块对应的目标参考块是主播客户端在当前的直播图像中确定的。一般来说,帧内预测模式下编码块对应的目标参考块包括在直播图像中该编码块的上面一行的像素点和左边一列的像素点。准确来说,对于NxN的编码块来说,会由其正上方的N个像素点、右上方的N个像素点、左侧的N个像素点、左下方的N个像素点以及左上角1个像素点构成该NxN编码块对应的目标参考块。
针对帧间预测模式来说,各个编码块对应的目标参考块是主播客户端在前后帧的直播图像(可以称之为参考帧)中确定的。
具体地,在Merge模式以及Inter模式下,主播客户端会根据若干个候选运动矢量,确定编码块对应的若干个候选的参考块,再从编码块对应的若干个候选的参考块中,获取与编码块最接近的参考块作为该编码块对应的目标参考块。
而Skip模式较为特殊,目标参考块在参考帧的固定位置,因此,根据该固定位置可以直接得到Skip模式下编码块对应的目标参考块。
在本申请实施例中,第一帧间预测模式即为Skip模式。主播客户端获取第一直播图像中各个第一编码块对应的目标参考块。
第一编码块对应的目标参考块中包括若干个参考像素点,如前述,根据目标参考块中各个参考像素点的像素值,可以获取第一编码块中各个像素点的预测像素值,从而实现对第一编码块的预测。
由于在Skip模式下无需计算第一编码块中各个像素点的预测像素值与第一编码块中各个像素点的原始像素值之间的残差信息,也无需对残差信息进行变换、量化等操作,并且,Skip模式下待编码传输的数据是很少的,因此,采用Skip模式能够极大程度地缩短直播视频的编码时间,提高直播视频的编码效率。但是,由于Skip模式下没有从若干个候选的参考块中确定目标参考块的过程,且Skip模式下不会传输残差信息,或者,传输的残差信息为0,故,直接采用Skip模式下可能会导致直播视频的编码质量下降。
为此,在本申请实施例中,主播客户端根据第一编码块对应的目标参考块,获取第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息,通过上述信息确定在第一帧间预测模式下对于第一编码块的预测情况以及第一编码块本身的色彩特性,以此来判断是否对该第一编码块采用第一帧间预测模式。
可以理解的是,若直播图像为YUV格式的,那么,第一编码块中像素点的像素值由1个亮度通道值Y和2个色度通道值U、V构成。人眼对亮度的变化更为敏感,因此,若在第一帧间预测模式下对第一编码块中各个像素点的亮度通道值的预测较为准确,且,第一编码块中的色彩变换较为平缓,那么,可以对该第一编码块采用第一帧间预测模式,确定该第一编码块对应的目标预测模式为第一帧间预测模式。
在一个可选的实施例中,请参阅图4,步骤S102中根据第一编码块对应的目标参考块,得到第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息,包括步骤:
S1021:根据目标参考块中各个参考像素点的像素值,得到第一编码块中各个像素点的预测像素值;其中,像素点的预测像素值包括预测亮度通道值和预测色度通道值。
S1022:获取第一编码块中各个像素点的原始像素值;其中,像素点的原始像素值包括原始亮度通道值和原始色度通道值。
S1023:根据第一编码块中各个像素点的原始亮度通道值与第一编码块中各个像素点的预测亮度通道值之间的差值的平方和,得到第一编码块对应的第一亮度误差信息。
S1024:根据第一编码块中各个像素点的原始色度通道值与第一编码块中各个像素点的预测色度通道值之间的差值的平方和,得到第一编码块对应的第一色度误差信息。
S1025:根据各个第一子编码块中各个像素点的原始亮度通道值与各个第一子编码块中各个像素点的预测亮度通道值之间的差值的平方和,得到各个第一子编码块对应的第一亮度误差信息。
S1026:根据各个第一子编码块中各个像素点的原始亮度通道值与各个第一子编码块中各个像素点的预测亮度通道值之间的差值的方差,得到各个第一子编码块对应的第二亮度误差信息。
首先,主播客户端根据目标参考块中各个参考像素点的像素值,对第一编码块中各个像素点的像素值进行预测,得到第一编码块中各个像素点的预测像素值。
其中,像素点的预测像素值包括预测亮度通道值和预测色度通道值。若直播图像为YUV格式的,那么,像素点的预测像素值包括1个预测亮度通道值和2个预测色度通道值。
之后,主播客户端获取第一编码块中各个像素点的原始像素值。原始像素值可以理解为真实的像素值。
其中,像素点的原始像素值包括原始亮度通道值和原始色度通道值。若直播图像为YUV格式的,那么,像素点的原始像素值包括1个原始亮度通道值和2个原始色度通道值。
主播客户端根据第一编码块中各个像素点的原始亮度通道值与第一编码块中各个像素点的预测亮度通道值之间的差值的平方和,得到第一编码块对应的第一亮度误差信息。
其中,第一亮度误差信息在本实施例中表示为LUMA_SSE。第一编码块对应的第一亮度误差信息能够反映对第一编码块的亮度的预测情况。
主播客户端根据第一编码块中各个像素点的原始色度通道值与第一编码块中各个像素点的预测色度通道值之间的差值的平方和,得到第一编码块对应的第一色度误差信息。
具体地,由于色度通道值包括2个,主播客户端需获取第一编码块中各个像素点的第一原始色度通道值与第一编码块中各个像素点的第一预测色度通道值之间的差值的平方和,以及第一编码块中各个像素点的第二原始色度通道值与第一编码块中各个像素点的第二预测色度通道值之间的差值的平方和,将平方和相加,得到第一编码块对应的第一色度误差信息。
其中,第一色度误差信息在本实施例中表示为CHROMA_SSE。第一编码块对应的第一色度误差信息能够反应对整个第一编码块的色度的预测情况。
主播客户端根据各个第一子编码块中各个像素点的原始亮度通道值与各个第一子编码块中各个像素点的预测亮度通道值之间的差值的平方和,得到各个第一子编码块对应的第一亮度误差信息。
其中,第一子编码块对应的第一亮度误差信息表示为SSE。第一子编码块对应的第一亮度误差信息能够反映对第一子编码块的亮度的预测情况。相较于LUMA_SSE,SSE更能反映出局部的亮度预测情况。
主播客户端根据各个第一子编码块中各个像素点的原始亮度通道值与各个第一子编码块中各个像素点的预测亮度通道值之间的差值的方差,得到各个第一子编码块对应的第二亮度误差信息。
其中,第一子编码块对应的第二亮度误差信息表示为VAR。第一子编码块对应的第二亮度误差信息能够反映对第一子编码块的亮度预测的平均浮动情况。
在一个可选的实施例中,在步骤S1025之前,主播客户端获取预测模式选择启用参数,根据预测模式选择启用参数,确认是否执行步骤S1025~S1026,以及S103中根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件的步骤,若是,则正常执行后续步骤,若否,则直接跳转执行步骤S103中获取各个预测模式下第一编码块对应的率失真优化信息,根据各个预测模式下第一编码块对应的率失真优化信息,得到第一编码块对应的目标预测模式的步骤。
主播客户端可以根据当前主播客户端的负载以及实际网络传输速度,调节该预测模式启用参数,以进一步提高直播视频编码质量。
关于步骤S103,根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件;若是,选择第一编码块对应的目标预测模式为第一帧间预测模式;若否,获取各个预测模式下第一编码块对应的率失真优化信息,根据各个预测模式下第一编码块对应的率失真优化信息,得到第一编码块对应的目标预测模式。
预设的模式选择条件用于判断在第一帧内预测模式下对第一编码块中各个像素点的亮度通道值的预测是否较为准确,以及第一编码块的色彩变换是否较为平缓。
在一个可选的实施例中,请参阅图5,S103中根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件,包括步骤:
S1031:判断各个第一子编码块对应的第一亮度误差信息是否均小于预设的第一阈值以及各个第一子编码块对应的第一亮度误差信息与各个第一子编码块对应的第二亮度误差信息之间的差值是否均小于预设的第二阈值。
S1032:若是,判断第一编码块对应的第一色度误差信息的平方值是否小于第一编码块对应的第一亮度误差信息,若是,确认第一编码块满足预设的模式选择条件,若否,确认第一编码块不满足预设的模式选择条件。
S1033:若否,确认第一编码块不满足预设的模式选择条件。
主播客户端判断各个第一子编码块对应的第一亮度误差信息是否均小于预设的第一阈值以及各个第一子编码块对应的第一亮度误差信息与各个第一子编码块对应的第二亮度误差信息之间的差值是否均小于预设的第二阈值。
即,主播客户端判断第一编码块中各个第一子编码块对应的第一亮度误差信息SSE是否均小于预设的第一阈值T1,以及各个第一子编码块对应的第一亮度误差信息SSE与各个第一子编码块对应的第二亮度误差信息VAR之间的差值SSE-VAR是否均小于第二阈值T2。
若是,表示在第一帧内预测模式下对第一子编码块中各个像素点的亮度通道值的预测均较为准确,继续判断第一编码块对应的第一色度误差信息的平方值CHROMA_SSE2是否小于第一编码块对应的第一亮度误差信息LUMA_SSE,若是,表示该第一编码块的色彩变换较为平缓,确认第一编码块满足预设的模式选择条件,若否,表示该第一编码块的色彩变换不够平缓,确认第一编码块不满足预设的模式选择条件。
若否,表示在第一帧内预测模式下对第一编码块中各个像素点的亮度通道值的预测不够准确,确认第一编码块不满足预设的模式选择条件。
接下来,若确认第一编码块满足预设的模式选择条件,主播客户端选择第一编码块对应的目标预测模式为第一帧间预测模式。若确认第一编码块不满足预设的模式选择条件,主播客户端获取各个预测模式下第一编码块对应的率失真优化信息,根据各个预测模式下第一编码块对应的率失真优化信息,得到第一编码块对应的目标预测模式。
下面说明何为率失真优化信息以及如何获取率失真优化信息。
率失真优化信息(RDO,Rate-distortion optimization)包括失真信息和预测比特信息。
RDO=D+λ*R,D为失真信息,R为预测比特信息,λ为基于实验确定的调节参数。
其中,失真信息用于反应编码块的失真情况,该失真是由量化操作所导致的。关于量化操作将在后续进行解释说明。
预测比特信息为预测的编码某一编码块所需的比特信息。由于不同的预测模式下,寻找目标参考块的方式不同,且寻找到的目标参考块也可能不同,因此,在不同的预测模式下,编码某一编码块所要用到的数据是不同的,那么,编码某一编码块所需的比特信息则也不同。
若某一预测模式下第一编码块对应的率失真优化信息最小,表示该预测模式为最优的预测模式,将其确认为第一编码块对应的目标预测模式。
在一个可选的实施例中,请参阅图6,S103中获取各个预测模式下第一编码块对应的率失真优化信息,包括步骤:
S1034:获取各帧第一直播图像对应的量化参数。
S1035:在各个预测模式下分别根据第一直播图像对应的量化参数,对第一直播图像进行量化,得到各个预测模式下各个第一编码块对应的量化信息。
S1036:根据各个预测模式下各个第一编码块对应的量化信息,得到各个预测模式下各个第一编码块对应的失真信息。
S1037:获取各个预测模式下各个第一编码块对应的预测比特信息,根据各个预测模式下各个第一编码块对应的失真信息和各个第一编码块对应的预测比特信息,得到各个预测模式下各个第一编码块对应的率失真优化信息;其中,第一编码块对应的预测比特信息为预测的编码第一编码块所需的比特信息。
关于步骤S1034,主播客户端获取各帧第一直播图像对应的量化参数。
在本实施例中,第一直播图像对应的量化参数和第二直播图像对应的量化参数是一同获取的,并不是单独获取第一直播图像对应的量化参数。
下面先对量化进行解释说明,量化是指将信号的连续取值(或大量的离散取值)映射为有限多个离散幅值的过程,实现将信号取值多对一的映射。因此,通过量化能够缩小信号的取值空间,进而获得更好的压缩效果。
在本实施例中,直播视频本质也是一种信号,对直播视频中的若干帧直播图像进行量化后,再进行编码,能够在不降低视觉效果的前提下,减少冗余的待编码信息,缩短图像编码的长度,从而提升直播视频的编码效果。
由于量化会将信号取值进行多对一的映射,因此,量化会造成直播图像中像素点的像素值的损失,反应在直播图像上即会造成直播图像的失真,故,需合理地设置量化参数。
量化参数小,直播图像的细节被更多的保留,直播图像的失真减弱,编码直播图像所需的比特率提高;量化参数大,直播图像的细节丢失,直播图像的失真增强,编码直播图像所需的比特率降低。
在本申请实施例中,主播客户端会获取各帧直播图像对应的量化参数,该量化参数并非一个固定值,而是根据不同帧的直播图像调节其对应的量化参数。
下面说明如何获取各帧直播图像对应的量化参数,在一个可选的实施例中,主播客户端会获取第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,根据第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,得到各帧直播图像对应的量化参数。
其中,第一比特率信息为单位时间内传送的比特数,单位为bps,在本技术领域中,比特率与码率是同一概念。
第一比特率信息用于宏观上调控各帧直播图像所能分配到的比特率信息。
各帧直播图像由于其所处于直播视频中的位置以及其所携带信息的含量的不同,其对应的重要程度和复杂程度是不同的。为了能够更合理的调节量化参数,因此,主播客户端需要获取各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息。
若直播图像的复杂程度信息越小且重要程度信息越小,那么该直播图像对应的量化参数越大,直播图像对应的量化参数越大,分配至该直播图像的比特率信息越小,且在平均比特率模式下,分配至各帧直播图像的比特率信息的平均值不会超过第一比特率信息。
在本实施例中,主播客户端会根据第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,调节各帧直播图像对应的量化参数,从而能够使得更重要以及更复杂的直播图像,其对应的量化参数更小,进而减少量化过程中该直播图像细节的损失,增加分配至该直播图像的比特率信息。
可以理解的是,主播客户端获取到了所有直播图像低音的量化参数,也就得到了其中第一直播图像对应的量化参数。
关于步骤S1035,在各个预测模式下分别根据第一直播图像对应的量化参数,对第一直播图像进行量化,得到各个预测模式下各个第一编码块对应的量化信息。
在各个预测模式下对第一直播图像进行量化,即为在各个预测模式下对各个第一编码块进行量化,得到各个预测模式下各个第一编码块对应的量化信息。
关于第一编码块已经在前述进行解释说明,可以了解的是,主播客户端还可能将64x64的编码块进一步划分为更小的编码块逐一进行量化等处理,在此不详细限定。
下面说明具体的量化过程,S1035包括步骤S10351~S10354,具体如下:
S10351:获取各个预测模式下各个第一编码块对应的目标参考块。
S10352:根据目标参考块中各个参考像素点的像素值,得到各个预测模式下第一编码块中各个像素点的预测像素值。
S10353:获取第一编码块中各个像素点的原始像素值,根据第一编码块中各个像素点的原始像素值与各个预测模式下第一编码块中各个像素点的预测像素值,得到各个预测模式下第一编码块对应的残差信息;其中,第一编码块对应的残差信息包括第一编码块中各个像素点对应的残差值。
S10354:对各个预测模式下第一编码块对应的残差信息依序进行变换操作和量化操作,得到各个预测模式下各个第一编码块对应的量化信息。
关于步骤S10351,第一编码块对应的目标参考块可以理解为与第一编码块最接近的参考块。根据目标参考块中各个参考像素点的像素值,得到编码块中各个像素点的预测像素值,能够使得编码块中各个像素点的预测像素值与编码块的原始像素值各个像素点之间的残差信息更小,那么,在对残差信息进行变换、量化操作后,编码获取的量化信息所需的比特信息就越少,从而能够有效提高压缩率。
在步骤S102中已经说明如何在各个预测模式下获取第一编码块对应的目标参考块,在此不进行复述。
关于步骤S10352,主播客户端获取各个预测模式下各个第一编码块对应的目标参考块,根据目标参考块中各个参考像素点的像素值,得到各个预测模式下第一编码块中各个像素点的预测像素值。
其中,目标参考块中各个参考像素点的像素值是指各个参考像素点的重构像素值。
关于如何获取目标参考块中各个参考像素点的重构像素值,将在步骤S1036中体现,这是由于目标参考块已经编码完成,那么在编码前,该目标参考块对应的目标预测模式必然已经确定,那也就意味着,已经计算了目标预测模式下该目标参考块对应的失真信息,而在计算失真信息的过程中,是可以获取到参考像素点的重构像素值的。
关于步骤S10353,主播客户端获取第一编码块中各个像素点的原始像素值,根据第一编码块中各个像素点的原始像素值与各个预测模式下第一编码块中各个像素点的预测像素值之间的差值,得到各个预测模式下第一编码块对应的残差信息。
其中,第一编码块对应的残差信息包括第一编码块中各个像素点对应的残差值。
关于步骤S10354,主播客户端对各个预测模式下第一编码块对应的残差信息依序进行变换操作和量化操作,得到各个预测模式下各个第一编码块对应的量化信息。
HEVC标准下的变换操作分为离散余弦变换DCT和离散正弦变换DST,其中,离散正弦变换DST只会在帧内预测模式下用于处理4x4的亮度块,亮度块是由像素点的亮度通道值构成的。
具体地,主播客户端对第一编码块对应的残差信息会先进行变换操作,再进行量化操作,进而得到第一编码块对应的量化信息。
关于变换过程和量化过程均为视频编码领域的现有技术,在此不展开说明。
关于步骤S1036,主播客户端根据各个预测模式下各个第一编码块对应的量化信息,得到各个预测模式下各个第一编码块对应的失真信息。
首先,主播客户端对各个预测模式下第一编码块对应的量化信息进行反量化操作,得到各个预测模式下第一编码块对应的反量化信息。其中,反量化操作即为量化操作的逆向过程。
之后,主播客户端对各个预测模式下第一编码块对应的反量化信息进行反变换操作,得到各个预测模式下第一编码块对应的反变换信息。其中,第一编码块对应的反变换信息包括第一编码块中各个像素点对应的反变换值。反变换操作即为变换操作的逆向过程。
再后,主播客户端根据各个预测模式下第一编码块中各个像素点对应的反变换值和各个预测模式下第一编码块中各个像素点的预测像素值,得到各个预测模式下第一编码块中各个像素点的重构像素值。
具体地,主播客户端根据各个预测模式下第一编码块中各个像素点对应的反变换值与各个预测模式下第一编码块中各个像素点的预测像素值之和,得到各个预测模式下第一编码块中各个像素点的重构像素值。
最后,主播客户端根据各个预测模式下第一编码块中各个像素点的重构像素值与各个预测模式下第一编码块中各个像素点的原始像素值之间的差值,得到各个预测模式下各个第一编码块对应的失真信息。
具体地,主播客户端根据各个预测模式下第一编码块中各个像素点的重构像素值与各个预测模式下第一编码块中各个像素点的原始像素值之间的差值,对该差值进行哈德玛变换后,得到哈德玛变换值,对哈德玛变换值取绝对值求和后,得到各个预测模式下各个第一编码块对应的失真信息。
在一个可选的实施例中,若第一直播图像的帧类型不仅为非关键帧,还为非参考双向差别帧,那么,第一直播图像不会作为其他直播图像对应的参考图像,用来搜索目标参考块。因此,不会出现从第一直播图像搜索到目标参考块的情况,那么也不会出现利用该目标参考块中各个参考像素点对应的像素值,获取当前编码块中各个像素点对应的预测像素值的情况。
基于上述,针对帧类型为非参考双向差别帧的第一直播图像,可以根据各个预测模式下编码块对应的量化信息与各个预测模式下编码块对应的反量化信息的差值,得到各个预测模式下各个编码块对应的失真信息,这样可以简化获取失真信息的过程,当然,此时也就无法获取各个编码块中各个像素点对应的重构像素值,但是,由于帧类型为非参考双向差别帧的第一直播图像中各个像素点对应的重构像素值不会被用于预测,故,这并不会影响直播视频的编码质量,并且还能够缩短计算时间,进一步提升视频编码效率。
关于步骤S1037,主播客户端获取各个预测模式下各个第一编码块对应的预测比特信息,根据各个预测模式下各个第一编码块对应的失真信息和各个第一编码块对应的预测比特信息,得到各个预测模式下各个第一编码块对应的率失真优化信息。
其中,第一编码块对应的预测比特信息为预测的编码第一编码块所需的比特信息。
下面说明如何获取各个预测模式下各个第一编码块对应的预测比特信息,具体地,步骤S1037包括步骤:
S10371:获取各个预测模式下各个第一编码块对应的第一待编码参数;其中,第一待编码参数用于确认第一编码块对应的目标参考块;目标参考块中各个参考像素点的像素值用于获取第一编码块中各个像素点的预测像素值。
S10372:根据各个预测模式下各个第一编码块对应的第一待编码参数以及各个预测模式下各个第一编码块对应的量化信息,得到各个预测模式下编码第一编码块所需的比特信息。
关于步骤S10371,主播客户端获取各个预测模式下各个第一编码块对应的第一待编码参数。
其中,第一待编码参数用于确认第一编码块对应的目标参考块,目标参考块中各个参考像素点的像素值用于获取第一编码块中各个像素点的预测像素值;
对于不同的预测模式,需要传输的第一待编码参数可能不同。
例如:利用帧间预测模式,为了搜索到第一编码块对应的目标参考块,需要传输的第一待编码参数包括该目标参考块在哪一帧直播图像(也可以称之为参考帧)中、具体为哪一帧间预测模式以及运动矢量(准确来说,需要传输的运动矢量的索引)等。
可以理解的是,不同的帧间预测模式,由于其确定编码块对应的目标参考块的具体方式可能不同,第一待编码参数中包括的内容也可能会相应的增加或减少,在此不进行详细的限定。
对于帧内预测模式,第一待编码参数包括具体为哪一帧内预测模式等。这是由于帧内预测模式是在当前的直播图像内确定目标参考块,且帧内预测模式无需根据运动矢量,确定目标参考块。
关于步骤S10372,主播客户端根据各个预测模式下各个第一编码块对应的第一待编码参数以及各个预测模式下各个第一编码块对应的量化信息,得到各个预测模式下编码第一编码块所需的比特信息。
编码过程是将待编码数据转化为二进制的码流的过程,因此,步骤S10372中编码该第一编码块所需的比特信息可以理解为传输二进制的码流占用的比特数。
由于不同的预测模式下,各个第一编码块对应的第一待编码参数以及各个第一编码块对应的量化信息都可能不同,因此,编码该第一编码块所需的比特信息也可能不同,故需要根据各个预测模式下各个第一编码块对应的第一待编码参数以及各个预测模式下各个第一编码块对应的量化信息,得到各个预测模式下编码该第一编码块所需的比特信息。
在一个可选的实施例中,主播客户端还可以对第一编码块对应的量化参数进行量化,得到量化参数对应的量化信息以及第一编码块对应的第二待编码参数。
其中,第一编码块对应的第二待编码参数用于确定根据哪些参考块对应的量化参数可以预测该第一编码块对应的量化参数。
再将第一编码块对应的第一待编码参数、第一编码块对应的量化信息以及量化参数对应的量化信息、第一编码块对应的第二待编码参数一同进行编码,得到编码该第一编码块所需的比特信息。可以理解的是,分别在不同预测模式下执行上述过程,是可以得到不同预测模式下编码该第一编码块所需的比特信息的。
关于步骤S104,获取各个帧内预测模式下第二直播图像中各个第二编码块对应的率失真优化信息,根据各个帧内预测模式下第二编码块对应的率失真优化信息,得到第二编码块对应的目标预测模式。
其中,第二编码块为划分第二直播图像得到的。具体划分方式可以与第一编码块的划分方式相同,在此不进行赘述。
由于第二直播图像的帧类型为关键帧,因此,对于第二直播图像只会进行帧内编码,故,只会在各个帧内预测模式下,得到第二编码块对应的目标预测模式。
对于如何获取各个帧内预测模式下第二编码块对应的率失真优化信息,与获取各个预测模式下第一编码块对应的率失真优化信息过程均是相同的,可以参考前述说明。
若某一帧内预测模式下第二编码块对应的率失真优化信息最小,则设置其为第二编码块对应的目标预测模式。
关于步骤S105,主播客户端在各个编码块对应的目标预测模式下对编码块进行编码,得到编码后的直播视频。
其中,编码块包括第一编码块和第二编码块,第一编码块和第二编码块已在前述解释说明,目标预测模式下编码块对应的率失真优化信息是最小的。
主播客户端在获取了各个编码块对应的目标预测模式之后,根据各个编码块对应的目标预测模式以及目标预测模式下编码块对应的量化信息,对各个编码块进行编码,得到编码后的编码块,从而得到编码后的直播图像,进而得到编码后的直播视频。
请参阅图7,在一个可选的实施例中,S105包括步骤S1051~S1052:
S1051:获取目标预测模式下各个编码块对应的目标待编码参数和目标预测模式下各个编码块对应的量化信息;其中,目标待编码参数用于在目标预测模式下确认编码块对应的目标参考块;目标参考块中各个参考像素点的像素值用于获取编码块中各个像素点的预测像素值。
S1052:对目标预测模式下各个编码块对应的目标待编码参数以及目标预测模式下各个编码块对应的量化信息进行编码,得到编码后的直播视频。
编码过程是将待编码数据转化为二进制的码流的过程。主播客户端获取目标预测模式下各个编码块对应的目标待编码参数和目标预测模式下各个编码块对应的量化信息,再对目标预测模式下各个编码块对应的目标待编码参数以及目标预测模式下各个编码块对应的量化信息进行编码,得到编码后的直播视频。
需要说明的是,量化信息为对残差信息进行变换操作、量化操作后得到的,对目标预测模式为第一帧间预测模式的第一编码块来说,可以不对该第一编码块对应的量化信息进行编码,这是由于Skip模式下可以不传输残差信息。
在一个可选的实施例中,主播客户端还可以对编码块对应的量化参数进行量化,得到量化参数对应的量化信息以及编码块对应的第二待编码参数。
其中,编码块对应的第二待编码参数用于确定根据哪些参考块对应的量化参数预测该编码块对应的量化参数。
之后,主播客户端再将目标预测模式下编码块对应的目标待编码参数、目标预测模式下编码块对应的量化信息以及量化参数对应的量化信息、编码块对应的第二待编码参数一同进行编码,得到编码后的编码块,从而得到编码后的直播图像,进而得到编码后的直播视频。
在本申请实施例中,获取包括若干帧直播图像的直播视频,针对帧类型为非关键帧的第一直播图像,先在第一帧间预测模式下获取该第一直播图像中各个第一编码块对应的目标参考块,根据第一编码块对应的目标参考块,获取第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、第一编码块中各个第一子编码块对应的第一亮度误差信息以及第一编码块中各个第一子编码块对应的第二亮度误差信息,上述信息能够反应出在第一帧间预测模式下对于第一编码块的预测情况以及第一编码块的色彩特性,因而可以根据第一编码块对应的第一亮度误差信息、第一编码块对应的第一色度误差信息、各个第一子编码块对应的第一亮度误差信息以及各个第一子编码块对应的第二亮度误差信息,判断第一编码块是否满足预设的模式选择条件,若是,则可以直接选择第一帧间预测模式作为该第一编码块对应的目标预测模式,从而省略了在各个预测模式下,关于该第一编码块对应的率失真优化信息的计算过程,并且由于在第一帧间预测模式下编码传输的数据较少,还可以减少编码该第一编码块所需的比特信息,进而大幅度降低了直播视频的编码复杂度,提升了直播视频的编码效率,能够在保证直播视频播放清晰度的情况下,改善直播视频的播放流畅度,提高用户的直播体验。
请参阅图8,为本申请第二实施例提供的基于预测模式选择的直播视频编码装置的结构示意图。该装置可以通过软件、硬件或两者的结合实现成为计算机设备的全部或一部分。该装置8包括:
第一获取单元81,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像,所述直播图像分为第一直播图像和第二直播图像,所述第二直播图像的帧类型为关键帧;
第二获取单元82,用于在第一帧间预测模式下获取所述第一直播图像中各个第一编码块对应的目标参考块,根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息;其中,所述第一编码块为划分所述第一直播图像得到的,所述第一子编码块为划分所述第一编码块得到的;
第一模式选择单元83,用于根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件;若是,选择所述第一编码块对应的目标预测模式为所述第一帧间预测模式;若否,获取各个预测模式下所述第一编码块对应的率失真优化信息,根据各个所述预测模式下所述第一编码块对应的率失真优化信息,得到所述第一编码块对应的目标预测模式;
第二模式选择单元84,用于获取各个帧内预测模式下所述第二直播图像中各个第二编码块对应的率失真优化信息,根据各个所述帧内预测模式下所述第二编码块对应的率失真优化信息,得到所述第二编码块对应的目标预测模式;其中,所述第二编码块为划分所述第二直播图像得到的;
第一编码单元85,用于在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频;其中,所述编码块包括所述第一编码块和所述第二编码块,所述目标预测模式下所述编码块对应的率失真优化信息最小。
需要说明的是,上述实施例提供的基于预测模式选择的直播视频编码装置在执行基于预测模式选择的直播视频编码方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分为不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于预测模式选择的直播视频编码装置与基于预测模式选择的直播视频编码方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
请参阅图9,为本申请第三实施例提供的计算机设备的结构示意图。如图9所示,该计算机设备9可以包括:处理器90、存储器91以及存储在该存储器91并可以在该处理器90上运行的计算机程序92,例如:基于预测模式选择的直播视频编码程序;该处理器90执行该计算机程序92时实现上述第一实施例中的步骤。
其中,该处理器90可以包括一个或多个处理核心。处理器90利用各种接口和线路连接计算机设备9内的各个部分,通过运行或执行存储在存储器91内的指令、程序、代码集或指令集,以及调用存储器91内的数据,执行计算机设备9的各种功能和处理数据,可选的,处理器90可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programble Logic Array,PLA)中的至少一个硬件形式来实现。处理器90可集成中央处理器(Central ProcessingUnit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器90中,单独通过一块芯片进行实现。
其中,存储器91可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器91包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器91可用于存储指令、程序、代码、代码集或指令集。存储器91可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控指令等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器91可选的还可以是至少一个位于远离前述处理器90的存储装置。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质可以存储有多条指令,该指令适用于由处理器加载并执行上述实施例的方法步骤,具体执行过程可以参见上述实施例的具体说明,在此不进行赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。

Claims (11)

1.一种基于预测模式选择的直播视频编码方法,其特征在于,所述方法包括步骤:
获取直播视频;其中,所述直播视频中包括若干帧直播图像,所述直播图像分为第一直播图像和第二直播图像,所述第二直播图像的帧类型为关键帧;
在第一帧间预测模式下获取所述第一直播图像中各个第一编码块对应的目标参考块,根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息;其中,所述第一编码块为划分所述第一直播图像得到的,所述第一子编码块为划分所述第一编码块得到的;
根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件;若是,选择所述第一编码块对应的目标预测模式为所述第一帧间预测模式;若否,获取各个预测模式下所述第一编码块对应的率失真优化信息,根据各个所述预测模式下所述第一编码块对应的率失真优化信息,得到所述第一编码块对应的目标预测模式;
获取各个帧内预测模式下所述第二直播图像中各个第二编码块对应的率失真优化信息,根据各个所述帧内预测模式下所述第二编码块对应的率失真优化信息,得到所述第二编码块对应的目标预测模式;其中,所述第二编码块为划分所述第二直播图像得到的;
在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频;其中,所述编码块包括所述第一编码块和所述第二编码块,所述目标预测模式下所述编码块对应的率失真优化信息最小。
2.根据权利要求1所述的基于预测模式选择的直播视频编码方法,其特征在于,所述根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息,包括步骤:
根据所述目标参考块中各个参考像素点的像素值,得到所述第一编码块中各个像素点的预测像素值;其中,所述像素点的预测像素值包括预测亮度通道值和预测色度通道值;
获取所述第一编码块中各个所述像素点的原始像素值;其中,所述像素点的原始像素值包括原始亮度通道值和原始色度通道值;
根据所述第一编码块中各个所述像素点的原始亮度通道值与所述第一编码块中各个所述像素点的预测亮度通道值之间的差值的平方和,得到所述第一编码块对应的第一亮度误差信息;
根据所述第一编码块中各个所述像素点的原始色度通道值与所述第一编码块中各个所述像素点的预测色度通道值之间的差值的平方和,得到所述第一编码块对应的第一色度误差信息;
根据各个所述第一子编码块中各个所述像素点的原始亮度通道值与各个所述第一子编码块中各个所述像素点的预测亮度通道值之间的差值的平方和,得到各个所述第一子编码块对应的第一亮度误差信息;
根据各个所述第一子编码块中各个所述像素点的原始亮度通道值与各个所述第一子编码块中各个所述像素点的预测亮度通道值之间的差值的方差,得到各个所述第一子编码块对应的第二亮度误差信息。
3.根据权利要求1所述的基于预测模式选择的直播视频编码方法,其特征在于,所述根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件,包括步骤:
判断各个所述第一子编码块对应的第一亮度误差信息是否均小于预设的第一阈值以及各个所述第一子编码块对应的第一亮度误差信息与各个所述第一子编码块对应的第二亮度误差信息之间的差值是否均小于预设的第二阈值;
若是,判断所述第一编码块对应的第一色度误差信息的平方值是否小于所述第一编码块对应的第一亮度误差信息,若是,确认所述第一编码块满足预设的模式选择条件,若否,确认所述第一编码块不满足预设的模式选择条件;
若否,确认所述第一编码块不满足预设的模式选择条件。
4.根据权利要求1至3任意一项所述的基于预测模式选择的直播视频编码方法,其特征在于,所述获取各个预测模式下所述第一编码块对应的率失真优化信息,包括步骤:
获取各帧所述第一直播图像对应的量化参数;
在各个所述预测模式下分别根据所述第一直播图像对应的量化参数,对所述第一直播图像进行量化,得到各个所述预测模式下各个所述第一编码块对应的量化信息;
根据各个所述预测模式下各个所述第一编码块对应的量化信息,得到各个所述预测模式下各个所述第一编码块对应的失真信息;
获取各个所述预测模式下各个所述第一编码块对应的预测比特信息,根据各个所述预测模式下各个所述第一编码块对应的失真信息和各个所述第一编码块对应的预测比特信息,得到各个所述预测模式下各个所述第一编码块对应的率失真优化信息;其中,所述第一编码块对应的预测比特信息为预测的编码所述第一编码块所需的比特信息。
5.根据权利要求4所述的基于预测模式选择的直播视频编码方法,其特征在于,所述在各个所述预测模式下分别根据所述第一直播图像对应的量化参数,对所述第一直播图像进行量化,得到各个所述预测模式下各个所述第一编码块对应的量化信息,包括步骤:
获取各个所述预测模式下各个所述第一编码块对应的目标参考块;
根据所述目标参考块中各个参考像素点的像素值,得到各个所述预测模式下所述第一编码块中各个像素点的预测像素值;
获取所述第一编码块中各个所述像素点的原始像素值,根据所述第一编码块中各个所述像素点的原始像素值与各个所述预测模式下所述第一编码块中各个所述像素点的预测像素值,得到各个所述预测模式下所述第一编码块对应的残差信息;其中,所述第一编码块对应的残差信息包括所述第一编码块中各个所述像素点对应的残差值;
对各个所述预测模式下所述第一编码块对应的残差信息依序进行变换操作和量化操作,得到各个所述预测模式下各个所述第一编码块对应的量化信息。
6.根据权利要求4所述的基于预测模式选择的直播视频编码方法,其特征在于,所述根据各个所述预测模式下各个所述第一编码块对应的量化信息,得到各个所述预测模式下各个所述第一编码块对应的失真信息,包括步骤:
对各个所述预测模式下所述第一编码块对应的量化信息进行反量化操作,得到各个所述预测模式下所述第一编码块对应的反量化信息;
对各个所述预测模式下所述第一编码块对应的反量化信息进行反变换操作,得到各个所述预测模式下所述第一编码块对应的反变换信息;其中,所述第一编码块对应的反变换信息包括所述第一编码块中各个像素点对应的反变换值;
根据各个所述预测模式下所述第一编码块中各个所述像素点对应的反变换值和各个所述预测模式下所述第一编码块中各个所述像素点的预测像素值,得到各个所述预测模式下所述第一编码块中各个所述像素点的重构像素值;
根据各个所述预测模式下所述第一编码块中各个所述像素点的重构像素值与各个所述预测模式下所述第一编码块中各个所述像素点的原始像素值之间的差值,得到各个所述预测模式下各个所述第一编码块对应的失真信息。
7.根据权利要求4所述的基于预测模式选择的直播视频编码方法,其特征在于,所述获取各个所述预测模式下各个所述第一编码块对应的预测比特信息,包括步骤:
获取各个所述预测模式下各个所述第一编码块对应的第一待编码参数;其中,所述第一待编码参数用于确认所述第一编码块对应的目标参考块;所述目标参考块中各个参考像素点的像素值用于获取所述第一编码块中各个像素点的预测像素值;
根据各个所述预测模式下各个所述第一编码块对应的第一待编码参数以及各个所述预测模式下各个所述第一编码块对应的量化信息,得到各个所述预测模式下编码所述第一编码块所需的比特信息。
8.根据权利要求1至3任意一项所述的基于预测模式选择的直播视频编码方法,其特征在于,所述在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频,包括步骤:
获取所述目标预测模式下各个所述编码块对应的目标待编码参数和所述目标预测模式下各个所述编码块对应的量化信息;其中,所述目标待编码参数用于在所述目标预测模式下确认所述编码块对应的目标参考块;所述目标参考块中各个参考像素点的像素值用于获取所述编码块中各个像素点的预测像素值;
对所述目标预测模式下各个所述编码块对应的目标待编码参数以及所述目标预测模式下各个所述编码块对应的量化信息进行编码,得到编码后的所述直播视频。
9.一种基于预测模式选择的直播视频编码装置,其特征在于,包括:
第一获取单元,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像,所述直播图像分为第一直播图像和第二直播图像,所述第二直播图像的帧类型为关键帧;
第二获取单元,用于在第一帧间预测模式下获取所述第一直播图像中各个第一编码块对应的目标参考块,根据所述第一编码块对应的目标参考块,得到所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、所述第一编码块中各个第一子编码块对应的第一亮度误差信息以及所述第一编码块中各个所述第一子编码块对应的第二亮度误差信息;其中,所述第一编码块为划分所述第一直播图像得到的,所述第一子编码块为划分所述第一编码块得到的;
第一模式选择单元,用于根据所述第一编码块对应的第一亮度误差信息、所述第一编码块对应的第一色度误差信息、各个所述第一子编码块对应的第一亮度误差信息以及各个所述第一子编码块对应的第二亮度误差信息,判断所述第一编码块是否满足预设的模式选择条件;若是,选择所述第一编码块对应的目标预测模式为所述第一帧间预测模式;若否,获取各个预测模式下所述第一编码块对应的率失真优化信息,根据各个所述预测模式下所述第一编码块对应的率失真优化信息,得到所述第一编码块对应的目标预测模式;
第二模式选择单元,用于获取各个帧内预测模式下所述第二直播图像中各个第二编码块对应的率失真优化信息,根据各个所述帧内预测模式下所述第二编码块对应的率失真优化信息,得到所述第二编码块对应的目标预测模式;其中,所述第二编码块为划分所述第二直播图像得到的;
第一编码单元,用于在各个编码块对应的目标预测模式下对所述编码块进行编码,得到编码后的所述直播视频;其中,所述编码块包括所述第一编码块和所述第二编码块,所述目标预测模式下所述编码块对应的率失真优化信息最小。
10.一种计算机设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任意一项所述方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述方法的步骤。
CN202210287650.3A 2022-03-23 2022-03-23 基于预测模式选择的直播视频编码方法及计算机设备 Active CN114374843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210287650.3A CN114374843B (zh) 2022-03-23 2022-03-23 基于预测模式选择的直播视频编码方法及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210287650.3A CN114374843B (zh) 2022-03-23 2022-03-23 基于预测模式选择的直播视频编码方法及计算机设备

Publications (2)

Publication Number Publication Date
CN114374843A true CN114374843A (zh) 2022-04-19
CN114374843B CN114374843B (zh) 2022-05-20

Family

ID=81146956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210287650.3A Active CN114374843B (zh) 2022-03-23 2022-03-23 基于预测模式选择的直播视频编码方法及计算机设备

Country Status (1)

Country Link
CN (1) CN114374843B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190977A1 (en) * 2003-12-02 2005-09-01 Samsung Electronics Co., Ltd. Method and apparatus for video encoding
JP2010177809A (ja) * 2009-01-27 2010-08-12 Toshiba Corp 動画像符号化装置および動画像復号装置
CN102238391A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种预测编码方法、装置
US20120327997A1 (en) * 2011-06-24 2012-12-27 Mattias Nilsson Video Coding
US9185414B1 (en) * 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
US20170085892A1 (en) * 2015-01-20 2017-03-23 Beijing University Of Technology Visual perception characteristics-combining hierarchical video coding method
CN110351557A (zh) * 2018-04-03 2019-10-18 朱政 视频编码中一种快速帧间预测编码方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190977A1 (en) * 2003-12-02 2005-09-01 Samsung Electronics Co., Ltd. Method and apparatus for video encoding
JP2010177809A (ja) * 2009-01-27 2010-08-12 Toshiba Corp 動画像符号化装置および動画像復号装置
CN102238391A (zh) * 2011-05-25 2011-11-09 深圳市融创天下科技股份有限公司 一种预测编码方法、装置
US20120327997A1 (en) * 2011-06-24 2012-12-27 Mattias Nilsson Video Coding
US9185414B1 (en) * 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
US20170085892A1 (en) * 2015-01-20 2017-03-23 Beijing University Of Technology Visual perception characteristics-combining hierarchical video coding method
CN110351557A (zh) * 2018-04-03 2019-10-18 朱政 视频编码中一种快速帧间预测编码方法

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2850830B1 (en) Encoding and reconstruction of residual data based on support information
US8165207B2 (en) Method of effectively predicting multi-layer based video frame, and video coding method and apparatus using the same
CN112789852A (zh) 基于历史的图像编码方法及其设备
CN111295884A (zh) 图像处理装置及图像处理方法
CN112954367B (zh) 使用调色板译码的编码器、解码器和相应方法
US20170223377A1 (en) Last frame motion vector partitioning
JP2022529999A (ja) Bdpcmに基づく映像コーディング方法、及びその装置
US20210021859A1 (en) Same frame motion estimation and compensation
CN111669589B (zh) 图像编码方法、装置、计算机设备以及存储介质
US20220159307A1 (en) System and method for video coding
US10812832B2 (en) Efficient still image coding with video compression techniques
CN109565588B (zh) 色度预测的方法及装置
US20230115058A1 (en) System and method for video coding
CN112235582B (zh) 一种视频数据处理方法、装置、计算机设备及存储介质
CN114374843B (zh) 基于预测模式选择的直播视频编码方法及计算机设备
JP2023100701A (ja) イントラ予測のためのイントラモードコーディングを使用するエンコーダ、デコーダ、および対応する方法
WO2023011420A1 (zh) 编解码方法和装置
US20220303554A1 (en) Smoothed directional and dc intra prediction
JP2021529473A (ja) 画像の符号化方法、復号化方法、エンコーダおよびデコーダ
CN114640849B (zh) 直播视频编码方法、装置、计算机设备及可读存储介质
US20220150538A1 (en) Cclm prediction-based image decoding method and apparatus in image coding system
CN114640844A (zh) 直播视频编码中的参考块搜索方法、装置及计算机设备
US10412383B2 (en) Compressing groups of video frames using reversed ordering
CN116761002A (zh) 视频编码方法、虚拟现实直播方法、装置、设备及介质
US12010347B2 (en) System and method for video coding

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