CN114640844A - 直播视频编码中的参考块搜索方法、装置及计算机设备 - Google Patents

直播视频编码中的参考块搜索方法、装置及计算机设备 Download PDF

Info

Publication number
CN114640844A
CN114640844A CN202210287360.9A CN202210287360A CN114640844A CN 114640844 A CN114640844 A CN 114640844A CN 202210287360 A CN202210287360 A CN 202210287360A CN 114640844 A CN114640844 A CN 114640844A
Authority
CN
China
Prior art keywords
coding block
prediction mode
block
live
coding
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
CN202210287360.9A
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.)
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 CN202210287360.9A priority Critical patent/CN114640844A/zh
Publication of CN114640844A publication Critical patent/CN114640844A/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • 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

Landscapes

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

Abstract

本申请涉及网络直播技术领域和视频编码技术领域,提出一种直播视频编码中的参考块搜索方法、装置及计算机设备,该方法包括:当在帧间预测模式下搜索直播图像中各个编码块对应的若干个参考块时,判断当前搜索的直播图像是否为第一直播图像;若是,在帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块,参考块对应的第一误差信息为根据参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的绝对误差和得到的。相对于现有技术,本申请能够提升目标参考块的搜索速度,提高视频编码效率。

Description

直播视频编码中的参考块搜索方法、装置及计算机设备
技术领域
本申请实施例涉及网络直播技术领域和视频编码技术领域,尤其涉及一种直播视频编码中的参考块搜索方法、装置及计算机设备。
背景技术
随着直播行业的快速发展,越来越多的互联网平台开始提供直播服务,以吸引用户在直播间内进行网络直播互动,使普通人拥有了施展才华的机会,并有助于缓解社会就业压力。
直播服务包括视频直播服务和语音直播服务,其中,视频直播服务过程中,用户在客户端所观看的视频内容称为直播视频,直播视频在播放时的清晰度和流畅度会直接影响用户的直播体验。
网络直播场景下客户端可分为主播客户端和观众客户端,主播开启网络直播后会触发主播客户端采集直播视频,主播客户端对直播视频进行编码后,将编码后的直播视频发送至服务器,观众客户端再从服务器拉取编码后的直播视频,进行解码播放。在上述过程中,对直播视频进行编码是保证直播视频的清晰度和流畅度,提高用户直播体验的重要环节。
目前,视频编码大多是基于HECV标准展开的,例如:用于视频编码的基于HEVC标准的X265编码器。但是,基于HECV标准的视频编码方式的复杂度相对较高且效率相对较低,难以适用于当今的网络直播场景中。
由于在基于HECV标准的视频编码方式中,参考块的搜索过程不仅会影响视频编码的质量,还会影响视频编码的效率,因而,若能够优化参考块的搜索过程,则能够更好地在网络直播场景中,承载起用户关于视频播放清晰度以及流畅度的更高需求,进一步提升用户的直播体验。
发明内容
本申请实施例提供了一种直播视频编码中的参考块搜索方法、装置及计算机设备,可以解决如何在保证直播视频播放清晰度的情况下,提高直播视频播放流畅度的技术问题,该技术方案如下:
第一方面,本申请实施例提供了一种直播视频编码中的参考块搜索方法,包括步骤:
获取直播视频;其中,所述直播视频中包括若干帧直播图像;
当在帧间预测模式下搜索所述直播图像中各个编码块对应的若干个参考块时,判断当前搜索的所述直播图像是否为第一直播图像;其中,所述编码块为划分所述直播图像得到的,所述第一直播图像对应的帧类型为双向差别帧;
若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块;其中,所述参考块对应的第一误差信息为根据所述参考块中各个参考像素点的像素值,获取所述编码块中各个像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的绝对误差和得到的。
第二方面,本申请实施例提供了一种直播视频编码中的参考块搜索装置,包括:
第一获取单元,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像;
第一判断单元,用于当在帧间预测模式下搜索所述直播图像中各个编码块对应的若干个参考块时,判断当前搜索的所述直播图像是否为第一直播图像;其中,所述编码块为划分所述直播图像得到的,所述第一直播图像对应的帧类型为双向差别帧;
第一搜索单元,用于若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块;其中,所述参考块对应的第一误差信息为根据所述参考块中各个参考像素点的像素值,获取所述编码块中各个像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的绝对误差和得到的。
第三方面,本申请实施例提供了一种计算机设备,处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述方法的步骤。
在本申请实施例中,当在帧间预测模式下搜索直播图像中各个编码块对应的参考块时,针对帧类型为双向差别帧的第一直播图像,会根据搜索到的参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的绝对误差和,从而得到参考块对应的第一误差信息,之后,再根据参考块对应的第一误差信息去确认哪一参考块为目标参考块。由于绝对误差和的计算过程更为简单、高效,且帧类型为双向差别帧的第一直播图像在直播视频中的重要性较低且数量较多,因此,在帧间预测模式下,通过提高搜索第一直播图像中各个编码块对应的目标参考块的效率,能够从整体上提升直播视频的编码效率,并且,对直播视频的编码质量的影响较小,可以同时保证直播视频在播放时的清晰度和流畅度,提升用户的直播体验。
为了更好地理解和实施,下面结合附图详细说明本申请的技术方案。
附图说明
图1为本申请实施例提供的直播视频编码中的参考块搜索方法的应用场景示意图;
图2为本申请实施例提供的直播视频编码中的参考块搜索方法的另一应用场景示意图;
图3为本申请第一实施例提供的直播视频编码中的参考块搜索方法的流程示意图;
图4为本申请第一实施例提供的直播视频编码中的参考块搜索方法的另一流程示意图;
图5为本申请第一实施例提供的直播视频编码中的参考块搜索方法中S106的流程示意图;
图6为本申请第一实施例提供的直播视频编码中的参考块搜索方法中S107的流程示意图;
图7为本申请第一实施例提供的直播视频编码中的参考块搜索方法中S108的流程示意图;
图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:若是,在帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块;其中,参考块对应的第一误差信息为根据参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的绝对误差和得到的。
在本实施例中,是以主播客户端为执行主体对直播视频编码中的参考块搜索方法进行描述的。
关于步骤S101,主播客户端获取直播视频。
其中,该直播视频为与主播客户端建立数据连接的摄像头所采集的视频数据,其中,该摄像头可以为主播客户端的自带摄像头,也可以为主播客户端的外接摄像头。
该直播视频中包含了若干帧直播图像。
关于步骤S102~S103,当在帧间预测模式下搜索直播图像中各个编码块对应的若干个参考块时,主播客户端判断当前搜索的直播图像是否为第一直播图像,若是,在帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块。
在对步骤S102~S103进行说明之前,先分别说明什么是编码块、什么是预测模式、为何要获取不同预测模式下直播图像中各个编码块对应的目标参考块。
(1)编码块是划分直播图像得到的,在一个可选的实施例中,划分的尺寸可以为64x64,得到64x64的编码块,也即,编码块由64行64列的像素点构成。
可以了解的是,主播客户端还可能将64x64的编码块进一步划分为更小的编码块逐一进行量化等处理,在此不详细限定。
若直播图像为YUV格式的,则像素点的像素值由亮度分量Y和色度分量U、V进行表示,那么,编码块包括亮度块和色度块,对亮度块和色度块,是分别进行量化等处理的,在本实施例中,将不详细将编码块划分为亮度块和色度块,以便于对后续量化编码过程的说明理解。
(2)预测模式包括帧间预测模式和帧内预测模式。
其中,帧间预测模式是在前后已经编码的直播图像中搜索编码块对应的目标参考块,帧内预测模式是在当前直播图像中搜索编码块对应的目标参考块。
在一个可选的实施例中,帧间预测模式包括Merge模式以及Inter模式,帧内预测模式包括35种,分别为DC模式,Planar模式和33种角度模式。
对于某一帧直播图像中的某个编码块来说,在不同的预测模式下均有该编码块对应的目标参考块。
(3)为何要获取不同预测模式下直播图像中各个编码块对应的目标参考块。
目标参考块可以理解为与编码块最接近的参考块。根据目标参考块中各个参考像素点的像素值,得到编码块中各个像素点的预测像素值,能够使得编码块中各个像素点的预测像素值与编码块的原始像素值各个像素点之间的残差信息更小,那么,在后续对残差信息进行变换、量化操作后,编码获取的量化信息所需的比特信息就越少,从而能够有效提高视频压缩率。
下面说明如何获取不同预测模式下直播图像中各个编码块对应的目标参考块。
针对帧内预测模式来说,各个编码块对应的目标参考块是主播客户端在当前的直播图像中确定的。
一般来说,编码块对应的目标参考块包括在直播图像中该编码块的上面一行的像素点和左边一列的像素点。准确来说,对于NxN的编码块来说,会由其正上方的N个像素点、右上方的N个像素点、左侧的N个像素点、左下方的N个像素点以及左上角1个像素点构成该NxN编码块对应的目标参考块。
可以理解的是,在不同帧内预测模式下,会通过不同的计算方式,基于目标参考块中各个参考像素点的像素值,获取编码块中各个像素点的预测像素值。
在本实施例中,主播客户端在帧内预测模式下,不会判断搜索的直播图像是否为第一直播图像。主播客户端在相同的帧内预测模式下,对所有的直播图像均是利用相同的方式确定出各个编码块对应的目标参考块的。
针对帧间预测模式来说,各个编码块对应的目标参考块是主播客户端在前后帧的直播图像中确定的。
在本实施例中,当在帧间预测模式下搜索该直播图像中各个编码块对应的若干个参考块时,主播客户端会判断当前搜索的直播图像是否为第一直播图像,若是,主播客户端则会在该帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块。
其中,第一直播图像对应的帧类型为双向差别帧。
在视频编码领域中,I帧是关键帧,在编码时无需参考其他图像。P帧是差别帧,在编码时需要利用之前的帧,B帧是双向差别帧,在编码时需要利用前后帧。
在本实施例中,关键帧、差别帧以及双向差别帧均是不同的帧类型。第一直播图像的帧类型为双向差别帧,也即B帧。
目标参考块对应的第一误差信息是最小的。
参考块对应的第一误差信息为根据参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的绝对误差和得到的。
其中,第一误差信息(SAD,Sum of Absolute Difference)的计算过程是相对较为简单的误差计算方式,因而,可缩短确定编码块对应的目标参考块的时间,进而提高直播视频编码效率。
在本实施例里,不限定对于除第一直播图像以外的第二直播图像,在各个帧间预测模式下如何搜索编码块对应的目标参考块。
在本申请实施例中,当在帧间预测模式下搜索直播图像中各个编码块对应的参考块时,针对帧类型为双向差别帧的第一直播图像,会根据搜索到的参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的绝对误差和,从而得到参考块对应的第一误差信息,之后,再根据参考块对应的第一误差信息去确认哪一参考块为目标参考块。由于绝对误差和的计算过程更为简单、高效,且帧类型为双向差别帧的第一直播图像在直播视频中的重要性较低且数量较多,因此,在帧间预测模式下,通过提高搜索第一直播图像中各个编码块对应的目标参考块的效率,能够从整体上提升直播视频的编码效率,并且,对直播视频的编码质量的影响较小,可以同时保证直播视频在播放时的清晰度和流畅度,提升用户的直播体验。
在一个可选的实施例中,步骤S103中在帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块,包括步骤:
主播客户端获取优化搜索启用参数,根据优化搜索启用参数,判断是否优化目标参考块的搜索过程,若是,在帧间预测模式下根据搜索到的若干个参考块对应的第一误差信息,确定第一直播图像中各个编码块对应的目标参考块。
在一个可选的实施例中,主播客户端响应于服务器发送的参数配置指令,解析参数配置指令,得到优化搜索启用参数。
也就是说,后台人员可以对不同主播客户端是否在视频编码过程中,开启参考块搜索优化进行自定义配置。
在另一个可选的实施例中,获取网络延迟信息和/或客户端负载信息,根据网络延迟信息和/或客户端负载信息,得到优化搜索启用参数。
具体地,主播客户端网络延迟信息和/或客户端负载信息,动态调整优化搜索启用参数,在主播客户端负载较小、网络延迟较低等情况下,设置优化搜索启用参数为第一参数值,以指示不优化目标参考块的搜索过程,在主播客户端负载较大、网络延迟较高等情况下,设置优化搜索启用参数为第二参数值,以指示优化目标参考块的搜索过程。
在本实施例中,通过动态地调整优化搜索启用参数,能够更合理地依据实时的网络状态和客户端负载情况,判断是否优化目标参考块的搜索过程,进而能够在主播客户端负载较小、网络延迟较低等情况下,用相对较多的时间去确定更为准确的最接近的参考块,而在主播客户端负载较大、网络延迟较高等情况下,在保证不影响视频编码质量的情况下,用相对较少的时间去搜索最接近的参考块,提高视频编码效率,保证视频播放的流畅度。
在一个可选的实施例中,若当前搜索的直播图像为第二直播图像,该方法还包括步骤S104,具体如下:
S104:在帧间预测模式下根据搜索到的若干个参考块对应第二误差信息,确定第二直播图像中各个编码块对应的目标参考块;其中,第二直播图像为除第一直播图像以外的直播图像;参考块对应的第二误差信息为根据参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的第一差值,对第一差值进行哈德玛变换后,得到第一哈德玛变换值,再对第一哈德玛变换值取绝对值求和后得到的。
在本实施例中,若当前搜索的直播图像为第二直播图像,那么主播客户端在帧间预测模式下根据搜索到的若干个参考块对应第二误差信息,确定第二直播图像中各个编码块对应的目标参考块。
其中,第二直播图像为第一直播图像以外的其他直播图像,第二直播图像的帧类型不是双向差别帧。
第二误差信息(SATD,Sum of Absolute Transformed Difference)为根据参考块中各个参考像素点的像素值,获取编码块中各个像素点的候选预测像素值,计算编码块中各个像素点的候选预测像素值与编码块中各个像素点的原始像素值之间的第一差值,对第一差值进行哈德玛变换后,得到第一哈德玛变换值,再对第一哈德玛变换值取绝对值求和后得到的。
其中,第二误差信息的计算过程是相对较为复杂的,过程中的哈德玛变换操作较为耗时。
还需要说明的是,在各个帧间预测模式下,为了便于后续编码,实际上并不会直接输出直播图像中各个编码块对应的目标参考块,而是输出直播图像中各个编码块对应的目标运动矢量以及目标参考块在哪一帧直播图像(也可以称之为参考帧)中,只要通过该目标运动矢量,能够在参考帧中搜索到该编码块对应的目标参考块即可。
因而,在各个帧间预测模式下获取直播图像中各个编码块对应的目标参考块,也就是指,在各个帧间预测模式下获取直播图像中各个编码块对应的目标运动矢量。
在各个帧间预测模式下获取直播图像中各个编码块对应的目标参考块包括在各个帧间预测模式下获取第一直播图像中各个编码块对应的目标参考块以及在各个帧间预测模式下获取第二直播图像中各个编码块对应的目标参考块。
下面将展开说明在搜索到各个编码块对应的目标参考块后,如何确定最优的预测模式,以及如何在最优的预测模式下进行视频编码。
在一个可选的实施例中,请参阅图4,该方法还包括步骤:
S105:获取各帧直播图像对应的量化参数。
S106:在各个预测模式下分别根据对应的量化参数,对各个编码块对应的残差信息进行量化,得到各个预测模式下各个编码块对应的量化信息;其中,预测模式包括帧内预测模式和帧间预测模式,编码块对应的残差信息为根据编码块对应的目标参考块中各个参考像素点的像素值,获取编码块中各个像素点的预测像素值,计算编码块中各个像素点的预测像素值与编码块中各个像素点的原始像素值之间的残差值得到的。
S107:根据各个预测模式下各个编码块对应的量化信息,得到各个预测模式下各个编码块对应的失真信息。
S108:获取各个预测模式下各个编码块对应的预测比特信息,根据各个预测模式下各个编码块对应的失真信息和各个编码块对应的预测比特信息,得到各个预测模式下各个编码块对应的率失真优化信息;其中,预测比特信息为预测的编码块所需的比特信息。
S109:获取各个编码块对应的目标预测模式,根据各个编码块对应的目标预测模式以及目标预测模式下编码块对应的量化信息,对各个编码块进行编码,得到编码后的直播视频;其中,目标预测模式下编码块对应的率失真优化信息最小。
关于步骤S105,主播客户端获取各帧直播图像对应的量化参数。
量化是指将信号的连续取值(或大量的离散取值)映射为有限多个离散幅值的过程,实现将信号取值多对一的映射。因此,通过量化能够缩小信号的取值空间,进而获得更好的压缩效果。
在本实施例中,直播视频本质也是一种信号,对直播视频中的若干帧直播图像进行量化后,再进行编码,能够在不降低视觉效果的前提下,减少冗余的待编码信息,缩短图像编码的长度,从而提升直播视频的编码效果。
由于量化会将信号取值进行多对一的映射,因此,量化会造成直播图像中像素点的像素值的损失,反应在直播图像上即会造成直播图像的失真,故,需合理地设置量化参数。
量化参数小,直播图像的细节被更多的保留,直播图像的失真减弱,编码直播图像所需的比特率提高;量化参数大,直播图像的细节丢失,直播图像的失真增强,编码直播图像所需的比特率降低。
在本申请实施例中,主播客户端会获取各帧直播图像对应的量化参数,该量化参数并非一个固定值,而是根据不同帧的直播图像调节其对应的量化参数。
下面说明如何获取各帧直播图像对应的量化参数,在一个可选的实施例中,主播客户端会获取第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,根据第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,得到各帧直播图像对应的量化参数。
其中,第一比特率信息为单位时间内传送的比特数,单位为bps,在本技术领域中,比特率与码率是同一概念。
第一比特率信息用于宏观上调控各帧直播图像所能分配到的比特率信息。
各帧直播图像由于其所处于直播视频中的位置以及其所携带信息的含量的不同,其对应的重要程度和复杂程度是不同的。为了能够更合理地调节量化参数,主播客户端需要获取各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息。
若直播图像的复杂程度信息越小且重要程度信息越小,那么该直播图像对应的量化参数越大,直播图像对应的量化参数越大,分配至该直播图像的比特率信息越小,且在平均比特率模式下,分配至各帧直播图像的比特率信息的平均值不会超过第一比特率信息。
在本实施例中,主播客户端会根据第一比特率信息、各帧直播图像的复杂程度信息以及各帧直播图像的重要程度信息,调节各帧直播图像对应的量化参数,从而能够使得更重要以及更复杂的直播图像,其对应的量化参数更小,进而减少量化过程中该直播图像细节的损失,增加分配至该直播图像的比特率信息。
关于步骤S106,在各个预测模式下分别根据对应的量化参数,对各个编码块对应的残差信息进行量化,得到各个预测模式下各个编码块对应的量化信息。
如前述,预测模式包括帧内预测模式和帧间预测模式。
编码块对应的残差信息为根据编码块对应的目标参考块中各个参考像素点的像素值,获取编码块中各个像素点的预测像素值,计算编码块中各个像素点的预测像素值与编码块中各个像素点的原始像素值之间的残差值得到的。
目标参考块中各个参考像素点的像素值是指各个参考像素点的重构像素值。
关于如何获取目标参考块中各个参考像素点的重构像素值,将在步骤S107中体现,这是由于目标参考块已经编码完成,那么在编码前,该目标参考块对应的目标预测模式(最优的预测模式)必然已经确定,那也就意味着,已经计算了目标预测模式下该目标参考块对应的失真信息,而在计算失真信息的过程中,是可以获取到参考像素点的重构像素值的。
在一个可选的实施例中,请参阅图5,S106包括步骤S1061~S1064,具体如下:
S1061:获取在各个预测模式下各个编码块对应的目标参考块。
S1062:根据编码块对应的目标参考块中各个参考像素点的像素值,得到各个预测模式下编码块中各个像素点的预测像素值。
S1063:根据编码块中各个像素点的预测像素值与编码块中各个像素点的原始像素值之间的残差值,得到各个预测模式下编码块对应的残差信息;其中,编码块对应的残差信息包括编码块中各个像素点对应的残差值。
S1064:对各个预测模式下编码块对应的残差信息依序进行变换操作和量化操作,得到各个预测模式下各个编码块对应的量化信息。
关于步骤1062,主播客户端是根据目标参考块中各个参考像素点的像素值,对编码块中各个像素点的像素值进行预测,得到编码块中各个像素点的预测像素值的,关于具体的预测过程也会基于预测模式的不同而不同,在此不进行限定。
关于步骤S1063,主播客户端根据编码块中各个像素点的预测像素值与编码块中各个像素点的原始像素值之间的残差值,得到各个预测模式下编码块对应的残差信息。
其中,编码块对应的残差信息包括编码块中各个像素点对应的残差值。
关于步骤S1064,主播客户端对各个预测模式下编码块对应的残差信息依序进行变换操作和量化操作,得到各个预测模式下各个编码块对应的量化信息。
HEVC标准下的变换操作分为离散余弦变换DCT和离散正弦变换DST,其中,离散正弦变换DST只会在帧内预测模式下用于处理4x4的亮度块,关于亮度块的含义可以参考前述。
具体地,主播客户端对编码块对应的残差信息会先进行变换操作,再进行量化操作,进而得到编码块对应的量化信息。
关于变换过程和量化过程均为视频编码领域的现有技术,在此不展开说明。
关于步骤S107,主播客户端根据各个预测模式下各个编码块对应的量化信息,得到各个预测模式下各个编码块对应的失真信息。
在一个可选的实施例中,主播客户端可以对各帧直播图像采用统一的方式,获取各个预测模式下各个编码块对应的失真信息。
在另一个可选的实施例中,主播客户端可以对帧类型为非参考双向差别帧的第三直播图像,优化获取各个预测模式下各个编码块对应的失真信息的过程。
下面将先说明常规情况下如何获取编码块对应的失真信息,请参阅图6,S107包括步骤S1071~S1074,具体如下:
S1071:对各个预测模式下各个编码块对应的量化信息进行反量化操作,得到各个预测模式下各个编码块对应的反量化信息。
S1072:对各个预测模式下各个编码块对应的反量化信息进行反变换操作,得到各个预测模式下各个编码块对应的反变换信息;其中,编码块对应的反变换信息包括编码块中各个像素点对应的反变换值。
S1073:根据各个预测模式下编码块中各个像素点对应的反变换值和各个预测模式下编码块中各个像素点的预测像素值,得到各个预测模式下编码块中各个像素点的重构像素值。
S1074:根据各个预测模式下编码块中各个像素点的重构像素值与各个预测模式下编码块中各个像素点的原始像素值之间的第二差值,对第二差值进行哈德玛变换后,得到第二哈德玛变换值,再对第二哈德玛变换值取绝对值求和后,得到各个预测模式下各个编码块对应的失真信息。
关于步骤S1071,主播客户端对各个预测模式下各个编码块对应的量化信息进行反量化操作,得到各个预测模式下各个编码块对应的反量化信息。
其中,反量化操作即为量化操作的逆向过程。
关于步骤S1072,主播客户端对各个预测模式下各个编码块对应的反量化信息进行反变换操作,得到各个预测模式下各个编码块对应的反变换信息。
其中,编码块对应的反变换信息包括编码块中各个像素点对应的反变换值。
反变换操作即为变换操作的逆向过程。
关于步骤S1073,主播客户端根据各个预测模式下编码块中各个像素点对应的反变换值和各个预测模式下编码块中各个像素点的预测像素值,得到各个预测模式下编码块中各个像素点的重构像素值。
具体地,主播客户端根据各个预测模式下编码块中各个像素点对应的反变换值与各个预测模式下编码块中各个像素点的预测像素值之和,得到各个预测模式下编码块中各个像素点的重构像素值。
此处也即对应前述的,在获取各个预测模式下各个编码块对应的失真信息的过程中,会得到各个预测模式下编码块中各个像素点的重构像素值。
关于步骤S1074,主播客户端根据各个预测模式下编码块中各个像素点的重构像素值与各个预测模式下编码块中各个像素点的原始像素值之间的第二差值,对第二差值进行哈德玛变换后,得到第二哈德玛变换值,再对第二哈德玛变换值取绝对值求和后,得到各个预测模式下各个编码块对应的失真信息。
下面说明对帧类型为非参考双向差别帧的第三直播图像,如何优化获取各个预测模式下各个编码块对应的失真信息的过程。
由于第三直播图像的帧类型为非参考双向差别帧,第三直播图像不会作为其他直播图像对应的参考图像,用来搜索目标参考块。因此,不会出现从第三直播图像搜索到目标参考块的情况,那么也不会出现利用该目标参考块中各个参考像素点对应的像素值,获取编码块中各个像素点对应的预测像素值的情况。
基于上述,对于帧类型为非参考双向差别帧的第三直播图像,可以根据各个预测模式下编码块对应的量化信息与各个预测模式下编码块对应的反量化信息的差值,得到各个预测模式下各个编码块对应的失真信息,这样可以简化获取第三直播图像中各个编码块对应的失真信息的过程,当然,此时也就无法得到第三直播图像中各个编码块中各个像素点对应的重构像素值,但是,这并不会影响直播视频的编码质量,并且还能够缩短计算时间,进一步提升视频编码效率。
关于步骤S108,主播客户端获取各个预测模式下各个编码块对应的预测比特信息,根据各个预测模式下各个编码块对应的失真信息和各个编码块对应的预测比特信息,得到各个预测模式下各个编码块对应的率失真优化信息。
其中,率失真优化信息(RDO,Rate-distortion optimization)包括失真信息和预测比特信息。
RDO=D+λ*R,D为失真信息,R为预测比特信息,λ为基于实验确定的调节参数。
关于失真信息如何获取已经解释,下面说明如何获取其中的预测比特信息。
该预测比特信息为预测的编码该编码块所需的比特信息。由于不同的预测模式,搜索编码块对应的目标参考块的方式不同,且搜索到编码块对应的目标参考块也可能不同,因此,在不同的预测模式下,编码该编码块所要用到的数据是不同的,那么,编码该编码块所需的比特信息则也不同。
在一个可选的实施例中,请参阅图7,S108中获取各个预测模式下各个编码块对应的预测比特信息,包括步骤:
S1081:获取各个预测模式下各个编码块对应的第一待编码参数;其中,第一待编码参数用于获取编码块对应的目标参考块。
S1082:根据各个预测模式下各个编码块对应的第一待编码参数以及各个预测模式下各个编码块对应的量化信息,预测各个预测模式下编码该编码块所需的比特信息。
关于步骤S1081,主播客户端获取各个预测模式下各个编码块对应的第一待编码参数。
其中,第一待编码参数用于确认编码块对应的目标参考块,该目标编码块中各个参考像素点的像素值用于获取编码块中各个像素点的预测像素值。
对于不同的预测模式,需要传输的第一待编码参数可能不同。
例如:利用帧间预测模式,为了搜索到编码块对应的目标参考块,需要传输的第一待编码参数包括该目标参考块在哪一帧直播图像(也可以称之为参考帧)中、具体为哪一帧间预测模式以及运动矢量(准确来说,需要传输的运动矢量的索引)等。
可以理解的是,不同的帧间预测模式,由于其确定编码块对应的目标参考块的具体方式可能不同,第一待编码参数中包括的内容也可能会相应的增加或减少,在此不进行详细的限定。
对于帧内预测模式,第一待编码参数包括具体为哪一帧内预测模式等。这是由于帧内预测模式是在当前的直播图像内确定目标参考块,且帧内预测模式无需根据运动矢量,确定目标参考块。
关于步骤S1082,主播客户端根据各个预测模式下各个编码块对应的第一待编码参数以及各个预测模式下各个编码块对应的量化信息,得到各个预测模式下编码该编码块所需的比特信息。
编码过程是将待编码数据转化为二进制的码流的过程,因此,步骤S1082中编码该编码块所需的比特信息可以理解为传输二进制的码流占用的比特数。
由于不同的预测模式下,各个编码块对应的第一待编码参数以及各个编码块对应的量化信息都可能不同,因此,编码该编码块所需的比特信息也可能不同,故需要根据各个预测模式下各个编码块对应的第一待编码参数以及各个预测模式下各个编码块对应的量化信息,得到各个预测模式下编码该编码块所需的比特信息。
在一个可选的实施例中,主播客户端还可以对编码块对应的量化参数进行量化,得到量化参数对应的量化信息以及编码块对应的第二待编码参数。
其中,编码块对应的第二待编码参数用于确定根据哪些参考块对应的量化参数可以预测该编码块对应的量化参数。
再将编码块对应的第一待编码参数、编码块对应的量化信息以及量化参数对应的量化信息、编码块对应的第二待编码参数一同进行编码,得到编码该编码块所需的比特信息。可以理解的是,分别在不同预测模式下执行上述过程,是可以得到不同预测模式下编码该编码块所需的比特信息的。
关于步骤S109,主播客户端获取各个编码块对应的目标预测模式,根据各个编码块对应的目标预测模式以及目标预测模式下编码块对应的量化信息,对各个编码块进行编码,得到编码后的直播视频。
其中,目标预测模式下编码块对应的率失真优化信息最小。
主播客户端在获取了各个编码块对应的目标预测模式之后,根据各个编码块对应的目标预测模式以及目标预测模式下编码块对应的量化信息,对各个编码块进行编码,得到编码后的编码块,从而得到编码后的直播图像,进而得到编码后的直播视频。
具体地,主播客户端获取目标预测模式下各个编码块对应的目标待编码参数;其中,目标待编码参数用于在目标预测模式下确认编码块对应的目标参考块;目标参考块中各个参考像素点的像素值用于获取编码块中各个像素点的预测像素值。
主播客户端对目标预测模式下各个编码块对应的目标待编码参数以及目标预测模式下各个编码块对应的量化信息进行编码,得到编码后的直播视频。
在一个可选的实施例中,主播客户端还可以对编码块对应的量化参数进行量化,得到量化参数对应的量化信息以及编码块对应的第二待编码参数。
其中,编码块对应的第二待编码参数用于确定根据哪些参考块对应的量化参数预测该编码块对应的量化参数。
之后,主播客户端再将目标预测模式下编码块对应的目标待编码参数、目标预测模式下编码块对应的量化信息以及量化参数对应的量化信息、编码块对应的第二待编码参数一同进行编码,得到编码后的编码块,从而得到编码后的直播图像,进而得到编码后的直播视频。
请参阅图8,为本申请第二实施例提供的直播视频编码中的参考块搜索装置的结构示意图。该装置可以通过软件、硬件或两者的结合实现成为计算机设备的全部或一部分。该装置8包括:
第一获取单元81,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像;
第一判断单元82,用于当在帧间预测模式下搜索所述直播图像中各个编码块对应的若干个参考块时,判断当前搜索的所述直播图像是否为第一直播图像;其中,所述编码块为划分所述直播图像得到的,所述第一直播图像对应的帧类型为双向差别帧;
第一搜索单元83,用于若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块;其中,所述参考块对应的第一误差信息为根据所述参考块中各个参考像素点的像素值,获取所述编码块中各个像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的绝对误差和得到的。
需要说明的是,上述实施例提供的直播视频编码中的参考块搜索装置在执行直播视频编码中的参考块搜索方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分为不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的直播视频编码中的参考块搜索装置与直播视频编码中的参考块搜索方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
请参阅图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 (10)

1.一种直播视频编码中的参考块搜索方法,其特征在于,所述方法包括步骤:
获取直播视频;其中,所述直播视频中包括若干帧直播图像;
当在帧间预测模式下搜索所述直播图像中各个编码块对应的若干个参考块时,判断当前搜索的所述直播图像是否为第一直播图像;其中,所述编码块为划分所述直播图像得到的,所述第一直播图像对应的帧类型为双向差别帧;
若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块;其中,所述参考块对应的第一误差信息为根据所述参考块中各个参考像素点的像素值,获取所述编码块中各个像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的绝对误差和得到的。
2.根据权利要求1所述的直播视频编码中的参考块搜索方法,其特征在于,若当前搜索的所述直播图像为第二直播图像,所述方法还包括步骤:
在所述帧间预测模式下根据搜索到的若干个所述参考块对应第二误差信息,确定所述第二直播图像中各个所述编码块对应的目标参考块;其中,所述第二直播图像为除所述第一直播图像以外的直播图像;所述参考块对应的第二误差信息为根据所述参考块中各个所述参考像素点的像素值,获取所述编码块中各个所述像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的第一差值,对所述第一差值进行哈德玛变换后,得到第一哈德玛变换值,再对所述第一哈德玛变换值取绝对值求和后得到的。
3.根据权利要求1所述的直播视频编码中的参考块搜索方法,其特征在于,所述在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块,包括步骤:
获取优化搜索启用参数,根据所述优化搜索启用参数,判断是否优化所述目标参考块的搜索过程,若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块。
4.根据权利要求3所述的直播视频编码中的参考块搜索方法,其特征在于,所述获取优化搜索启用参数,包括步骤:
响应于服务器发送的参数配置指令,解析所述参数配置指令,得到所述优化搜索启用参数;或,获取网络延迟信息和/或客户端负载信息,根据所述网络延迟信息和/或所述客户端负载信息,得到所述优化搜索启用参数。
5.根据权利要求1至4任意一项所述的直播视频编码中的参考块搜索方法,其特征在于,所述方法还包括步骤:
获取各帧所述直播图像对应的量化参数;
在各个预测模式下分别根据对应的所述量化参数,对各个所述编码块对应的残差信息进行量化,得到各个所述预测模式下各个所述编码块对应的量化信息;其中,所述预测模式包括帧内预测模式和所述帧间预测模式,所述编码块对应的残差信息为根据所述编码块对应的目标参考块中各个所述参考像素点的像素值,获取所述编码块中各个所述像素点的预测像素值,计算所述编码块中各个所述像素点的预测像素值与所述编码块中各个所述像素点的原始像素值之间的残差值得到的;
根据各个所述预测模式下各个所述编码块对应的量化信息,得到各个所述预测模式下各个所述编码块对应的失真信息;
获取各个所述预测模式下各个所述编码块对应的预测比特信息,根据各个所述预测模式下各个所述编码块对应的失真信息和各个所述编码块对应的预测比特信息,得到各个所述预测模式下各个所述编码块对应的率失真优化信息;其中,所述预测比特信息为预测的编码所述编码块所需的比特信息;
获取各个所述编码块对应的目标预测模式,根据各个所述编码块对应的目标预测模式以及所述目标预测模式下所述编码块对应的量化信息,对各个所述编码块进行编码,得到编码后的所述直播视频;其中,所述目标预测模式下所述编码块对应的率失真优化信息最小。
6.根据权利要求5所述的直播视频编码中的参考块搜索方法,其特征在于,所述在各个预测模式下分别根据对应的所述量化参数,对各个所述编码块对应的残差信息进行量化,得到各个所述预测模式下各个所述编码块对应的量化信息,包括步骤:
获取在各个所述预测模式下各个所述编码块对应的目标参考块;
根据所述编码块对应的目标参考块中各个所述参考像素点的像素值,得到各个所述预测模式下所述编码块中各个所述像素点的预测像素值;
根据所述编码块中各个所述像素点的预测像素值与所述编码块中各个所述像素点的原始像素值之间的残差值,得到各个所述预测模式下所述编码块对应的残差信息;其中,所述编码块对应的残差信息包括所述编码块中各个所述像素点对应的残差值;
对各个所述预测模式下所述编码块对应的残差信息依序进行变换操作和量化操作,得到各个所述预测模式下各个所述编码块对应的量化信息。
7.根据权利要求5所述的直播视频编码中的参考块搜索方法,其特征在于,所述根据各个所述预测模式下各个所述编码块对应的量化信息,得到各个所述预测模式下各个所述编码块对应的失真信息,包括步骤:
对各个所述预测模式下各个所述编码块对应的量化信息进行反量化操作,得到各个所述预测模式下各个所述编码块对应的反量化信息;
对各个所述预测模式下各个所述编码块对应的反量化信息进行反变换操作,得到各个所述预测模式下各个所述编码块对应的反变换信息;其中,所述编码块对应的反变换信息包括所述编码块中各个所述像素点对应的反变换值;
根据各个所述预测模式下所述编码块中各个所述像素点对应的反变换值和各个所述预测模式下所述编码块中各个所述像素点的预测像素值,得到各个所述预测模式下所述编码块中各个所述像素点的重构像素值;
根据各个所述预测模式下所述编码块中各个所述像素点的重构像素值与各个所述预测模式下所述编码块中各个所述像素点的原始像素值之间的第二差值,对所述第二差值进行哈德玛变换后,得到第二哈德玛变换值,再对所述第二哈德玛变换值取绝对值求和后,得到各个所述预测模式下各个所述编码块对应的失真信息。
8.一种直播视频编码中的参考块搜索装置,其特征在于,包括:
第一获取单元,用于获取直播视频;其中,所述直播视频中包括若干帧直播图像;
第一判断单元,用于当在帧间预测模式下搜索所述直播图像中各个编码块对应的若干个参考块时,判断当前搜索的所述直播图像是否为第一直播图像;其中,所述编码块为划分所述直播图像得到的,所述第一直播图像对应的帧类型为双向差别帧;
第一搜索单元,用于若是,在所述帧间预测模式下根据搜索到的若干个所述参考块对应的第一误差信息,确定所述第一直播图像中各个所述编码块对应的目标参考块;其中,所述参考块对应的第一误差信息为根据所述参考块中各个参考像素点的像素值,获取所述编码块中各个像素点的候选预测像素值,计算所述编码块中各个所述像素点的候选预测像素值与所述编码块中各个所述像素点的原始像素值之间的绝对误差和得到的。
9.一种计算机设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述方法的步骤。
CN202210287360.9A 2022-03-23 2022-03-23 直播视频编码中的参考块搜索方法、装置及计算机设备 Pending CN114640844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210287360.9A CN114640844A (zh) 2022-03-23 2022-03-23 直播视频编码中的参考块搜索方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210287360.9A CN114640844A (zh) 2022-03-23 2022-03-23 直播视频编码中的参考块搜索方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN114640844A true CN114640844A (zh) 2022-06-17

Family

ID=81950547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210287360.9A Pending CN114640844A (zh) 2022-03-23 2022-03-23 直播视频编码中的参考块搜索方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN114640844A (zh)

Similar Documents

Publication Publication Date Title
EP1805995B1 (en) Method for generating multiple transcoded outputs based on a single video input
CN1901676B (zh) 流式图像系统和方法
RU2426267C2 (ru) Усовершенствованное межуровневое предсказание для расширенной пространственной масштабируемости при кодировании видеосигнала
US10873763B2 (en) Video compression techniques for high dynamic range data
US20170223377A1 (en) Last frame motion vector partitioning
CN111669589B (zh) 图像编码方法、装置、计算机设备以及存储介质
US10880573B2 (en) Dynamic motion vector referencing for video coding
US10812832B2 (en) Efficient still image coding with video compression techniques
US10567772B2 (en) Sub8×8 block processing
US10225573B1 (en) Video coding using parameterized motion models
CN111225214B (zh) 视频处理方法、装置及电子设备
US20220303554A1 (en) Smoothed directional and dc intra prediction
CN114374843B (zh) 基于预测模式选择的直播视频编码方法及计算机设备
CN114640844A (zh) 直播视频编码中的参考块搜索方法、装置及计算机设备
CN114640849B (zh) 直播视频编码方法、装置、计算机设备及可读存储介质
KR102312668B1 (ko) 비디오 트랜스코딩 시스템
US20230291900A1 (en) Systems and methods for partition dependent secondary transform
US11856225B2 (en) Methods for efficient application of LGT
US20230379479A1 (en) Systems and methods for determining chroma samples in an intra prediction mode of video coding
US20230412812A1 (en) Systems and methods for joint signaling of transform coefficient signs
US20230388535A1 (en) Systems and methods for combining subblock motion compensation and overlapped block motion compensation
US20230319260A1 (en) Systems and methods for frequency-dependent coefficient sign coding
CN116761002A (zh) 视频编码方法、虚拟现实直播方法、装置、设备及介质
US20150341659A1 (en) Use of pipelined hierarchical motion estimator in video coding
WO2023059689A1 (en) Systems and methods for predictive 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