CN110049336B - 视频编码方法和视频解码方法 - Google Patents

视频编码方法和视频解码方法 Download PDF

Info

Publication number
CN110049336B
CN110049336B CN201910426978.7A CN201910426978A CN110049336B CN 110049336 B CN110049336 B CN 110049336B CN 201910426978 A CN201910426978 A CN 201910426978A CN 110049336 B CN110049336 B CN 110049336B
Authority
CN
China
Prior art keywords
video
sub
sequence
video image
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910426978.7A
Other languages
English (en)
Other versions
CN110049336A (zh
Inventor
李大龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910426978.7A priority Critical patent/CN110049336B/zh
Publication of CN110049336A publication Critical patent/CN110049336A/zh
Priority to PCT/CN2020/090143 priority patent/WO2020233483A1/zh
Application granted granted Critical
Publication of CN110049336B publication Critical patent/CN110049336B/zh
Priority to US17/387,594 priority patent/US20210360047A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备,该方法包括:获取视频数据,视频数据包括多个原始视频图像;根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像;获取各个子序列视频图像组对应的编码方式;根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。本申请提供的方案能够根据网络状况自适应调整视频质量从而提高视频播放的流畅性。此外还提供了一种视频解码方法、装置、计算机可读存储介质和计算机设备。

Description

视频编码方法和视频解码方法
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备,以及一种视频解码方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,视频的应用场景越来越广。在不同使用场景,输出图像分辨率、码率等配置不同,而传统的视频编码器会根据不同的输出图像分辨率、码率等配置对原始视频数据的每一帧分别进行编码,得到不同输出图像分辨率、码率对应的码流。当网络状况发生变化时,需要断开当前链接,重新请求新的码流,此时视频编码器又需要根据重新请求的输出图像分辨率、码流等配置进行重新编码,因此导致视频播放出现卡顿、缓冲等待播放等问题。
发明内容
基于此,有必要针对上述技术问题,提供一种视频编码方法、装置、计算机可读存储介质和计算机设备,以及视频解码方法、装置、计算机可读存储介质和计算机设备,在带宽有限的情况下,能够根据网络状况自适应调整视频质量从而保证视频播放的流畅性。
一种视频编码方法,包括:
获取视频数据,视频数据包括多个原始视频图像;
根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像;
获取各个子序列视频图像组对应的编码方式;
根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
一种视频编码装置,该装置包括:
视频数据获取模块,用于获取视频数据,视频数据包括多个原始视频图像;
视频数据处理模块,用于根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像;
编码方式获取模块,用于获取各个子序列视频图像组对应的编码方式;
子序列视频图像组编码模块,用于根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现以下步骤:
获取视频数据,视频数据包括多个原始视频图像;
根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像;
获取各个子序列视频图像组对应的编码方式;
根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取视频数据,视频数据包括多个原始视频图像;
根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像;
获取各个子序列视频图像组对应的编码方式;
根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
上述视频编码方法、装置、计算机可读存储介质和计算机设备,根据序列生成规则对视频数据进行处理,得到多个独立的子序列视频图像,而各个子序列视频图像组中包括与序列生成规则对应的子序列图像。在进行编码时,各个独立的子序列视频图像根据对应的编码方式进行独立编码,各个子序列视频图像组的编码过程互不干扰、无任何依赖关系。通过序列生成规则将视频数据处理得到多个独立的子序列视频图像,且子序列视频图像中的子序列图像内容是不重叠的,因此只需对视频数据进行一次完整的编码,没有编码运算和存储上的冗余。进一步地,能够根据网络状况自适应调整子序列视频编码数据量,避免网络状况变化导致解码播放出现缓冲等待、播放卡顿或者停止播放等质量问题,提高视频播放的流畅性。
一种视频解码方法,包括:
接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配;
将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧;
将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
在一个实施例中,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,包括:
向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端选择与请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据;
接收视频发送终端返回的目标编码数据。
在一个实施例中,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,包括:
向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端根据视频发送终端的当前网络状态调整请求子序列数目,选择与调整后的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据;
接收视频发送终端返回的目标编码数据。
一种视频解码装置,其特征在于,装置包括:
目标编码数据接收模块,用于接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配;
编码数据解码模块,用于将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧;
视频帧拼接模块,用于将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现以下步骤:
接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配;
将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧;
将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配;
将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧;
将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
上述视频解码方法、装置、计算机可读存储介质和计算机设备,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配,将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。因此,在视频解码过程中,可根据视频请求终端的网络状态情况返回匹配的目标编码数据,能够避免网络状态情况影响视频请求终端出现缓冲等待、播放卡顿或者停止播放等质量问题,从而能够保证视频请求终端最终视频播放的流畅性。而且,目标编码数据中的各个子序列视频图像组可以独立解码,互不干扰,能够提高视频解码效率。
附图说明
图1为一个实施例中视频编码方法或者视频解码方法的应用环境图;
图2为一个实施例中视频编码方法的流程示意图;
图2A为一个实施例中视频编码方法的原理示意图;
图3为另一个实施例中视频编码方法的流程示意图;
图4为一个实施例中获取目标子序列数目的流程示意图;
图5为另一个实施例中获取目标子序列数目的流程示意图;
图6为一个实施例中序列生成规则处理步骤的流程示意图;
图6A为一个实施例中子序列视频图像组生成步骤的示例图;
图7为一个实施例中序列生成规则处理步骤的流程示意图;
图7A为一个实施例中子序列视频图像组生成步骤的示例图;
图8为一个实施例中视频解码方法的流程示意图;
图9为一个实施例中接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据的流程示意图;
图10为另一个实施例中接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据的流程示意图;
图11为另一个实施例中视频解码方法的流程示意图;
图12为又一个实施例中视频解码方法的流程示意图;
图13为一个实施例中时域拼接方式拼接处理步骤的流程示意图;
图14为一个实施例中空域拼接方式拼接处理步骤的流程示意图;
图15为一个实施例中视频编解码的原理示意图;
图16为一个实施例中编码装置的结构框图;
图17为另一个实施例中编码装置的结构框图;
图18为一个实施例中视频数据处理模块的结构框图;
图19为另一个实施例中视频数据处理模块的结构框图;
图20为一个实施例中视频解码装置的结构框图;
图21为另一个实施例中视频解码装置的结构框图;
图22为又一个实施例中视频解码装置的结构框图;
图23为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中视频编码方法的应用环境图。参照图1,该视频编码方法应用于视频编码系统。该视频编码系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑或笔记本电脑等。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,终端110可以是视频请求终端,用于向视频发送终端发送采集到的视频数据,而服务器120可以是视频发送终端,用于接收视频请求终端发送的视频数据,从而对接收到的视频数据进行编码处理。
具体地,终端110可以将采集到多个原始视频图像组成的视频数据发送至服务器120,服务器120获取到视频数据后,根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像,获取各个子序列视频图像组对应的编码方式,根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
在另一个实施例中,图1还可以为一个实施例中视频解码方法的应用环境图。参照图1,该视频解码方法应用于视频解码系统。该视频解码系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑或笔记本电脑等。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,服务器120可以是视频发送终端,用于根据视频请求终端的网络状态返回匹配的目标编码数据,而终端110可以是视频请求终端,用于向视频发送终端请求目标编码数据,且还用于对目标编码数据进行解码处理。
具体地,服务器120根据终端110的网络状态获取目标编码数据,将目标编码数据返回至终端110,终端110接收服务器120返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与终端110的网络状态匹配,终端110将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧,最后将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。进一步地,终端110可以播放目标解码视频帧序列。
如图2所示,在一个实施例中,提供了一种视频编码方法。本实施例主要以该方法应用于上述图1中的终端110或服务器120来举例说明。参照图2,该视频编码方法具体包括如下步骤:
步骤202,获取视频数据,视频数据包括多个原始视频图像。
其中,原始视频图像是构成视频数据的单位,视频数据可以包括多个原始视频图像,原始视频图像可以是以帧为单位,帧是视频数据中的画面,一帧即一个画面,一帧包括视频数据及其对应的音频数据。即该视频数据可以包括多帧原始视频图像。原始视频图像可以是视频数据的各帧视频帧,视频数据可以是存储于终端或服务器内的离线视频文件,也可以是终端从服务器获取的在线视频文件。
例如,视频数据可以是终端从服务器获取的在线视频文件,此时,当终端用户通过终端上的视频软件请求播放指定视频文件时,终端可以通过网络将该视频播放请求传送至服务器,服务器可以返回指定视频文件的播放地址等,从而可以在终端上播放该指定的视频数据。在视频数据的播放过程中,终端可以实时获取视频数据中的各帧原始视频图像。
步骤204,根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像。
其中,序列生成规则是用来根据视频数据生成独立的子序列视频图像组的规则,该序列生成规则可以预先设置,序列生成规则包括但不限于时域生成规则和空域生成规则,时域生成规则可以是将视频数据按照时间轴排列进行抽样并划分得到各个独立的子序列视频图像组,划分规则可自定义,自定义可以是根据抽样间隔从视频数据中的原始视频图像中抽取得到子序列视频图像,将同一抽样间隔抽取得到的子序列视频图像组成独立的子序列视频图像组。自定义还可以是根据预设序列生成算法确定视频数据中各个原始视频图像隶属的目标子序列视频图像组序号,将对应的原始视频图像归入至目标子序列视频图像组序号对应的子序列视频图像组中。
空域生成规则可以是通过对视频数据中的原始视频图像进行下采样得到各个独立的子序列视频图像组,具体方式可自定义,自定义可以是对视频数据中的各个原始视频图像进行下采样得到预设数量个相同分辨率的子视频帧,确定各个子视频帧对应的子视频帧序号,根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组中,从而得到多个独立的子序列视频图像组。其中,同一子序列视频图像组的子视频帧的子视频帧序号可以是相同子视频帧序号,也可以是不同的子视频帧序号,具体可以根据实际业务需求以及业务场景进行设置。
具体地,首先,确定序列生成规则,当序列生成规则为时域生成规则时,根据抽样间隔从视频数据中的原始视频图像中抽取得到子序列视频图像,将同一抽样间隔抽取得到的子序列视频图像组成独立的子序列视频图像组。当序列生成规则为空域生成规则时,对视频数据中的各个原始视频图像进行下采样得到预设数量个相同分辨率的子视频帧,按照相同的规则确定各个子视频帧对应的子视频帧序号,根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组中,从而得到多个独立的子序列视频图像组。
其中,各个子序列视频图像组中包括与序列生成规则对应的子序列图像,当序列生成规则为时域生成规则时,子序列图像可以为根据抽样间隔从原始视频图像中抽取得到的图像,子序列图像的分辨率与原始视频图像的分辨率相同。而序列生成规则为空域生成规则时,子序列图像可以为对原始视频图像进行下采样得到的图像,子序列图像的分辨率比对应的未进行下采样前的原始视频图像的分辨率小。
步骤206,获取各个子序列视频图像组对应的编码方式。
其中,不同的子序列视频图像组存在不同的编码方式,不同的子序列视频图像组之间可以完全独立编码,各个子序列视频图像组在编码过程中无任何依赖关系。其中编码方式是通过视频编码器对子序列视频图像组中的子序列视频图像进行编码的方式,编码方式包括但不限于第一编码方式,或者第二编码方式等等。其中,不同的编码方式采用不同的编码算法对子序列视频图像组中的子序列视频图像进行编码,不同的编码算法是指进行编码时设置的各个编码参数不同,如运动搜索范围不同,量化参数不同,率失真代价计算方式不同,码率信息不同等等。其中,视频编码器是用来对子序列视频图像进行编码的,视频编码器可以是但不限于物理视频编码器、软件视频编码器等等。
其中,可通过子序列视频图像组标识获取对应的编码方式,具体可预先建立各个子序列视频图像组标识与对应的编码方式之间的关系,在各个子序列视频图像组中的子序列视频图像需要进行编码时,可先根据子序列视频图像组标识获取到对应的编码方式,再根据编码方式对对应的子序列视频图像组中的子序列视频图像进行编码,从而得到对应的编码数据。其中,各个子序列视频图像组在进行编码时,可通过对应的编码方式独立编码,各个子序列视频图像组在编码时互不干扰,不存在任何依赖关系,可同时进行编码。
步骤208,根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
其中,子序列视频编码数据是视频编码器在对子序列视频图像进行编码时产生的相关数据。具体地,在获取各个子序列视频图像组对应的编码方式后,根据各个子序列视频图像组的编码方式对对应的子序列视频图像组的各个子序列视频图像进行编码,从而得到各个子序列视频图像组对应的子序列视频编码数据。其中,编码可以包括预测、变换、量化以及熵编码中的至少一个。
其中,各个子序列视频图像组在根据对应的编码方式对对应的子序列视频图像组进行编码时,各个子序列视频图像组之间的编码过程是独立的,互不影响和互不干扰。其中,各个子序列视频图像组的编码方式可以是相同的编码方式,也可以是不同的编码方式。
在一个实施例中,如图2A所示,图2A示出一个实施例中视频编码方法的原理示意图,获取到多个以帧为单位的原始视频图像组成的视频数据,确定序列生成规则为时域生成规则或空域生成规则,根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,如图2A中的子序列视频图像组A、子序列视频图像组B、子序列视频图像组C和子序列视频图像组D,由于不同子序列视频图像组的编码方式可以是相同的,也可以是不同的,因此获取各个子序列视频图像组对应的编码方式,如子序列视频图像组A对应编码方式a、子序列视频图像组B对应编码方式b、子序列视频图像组C对应编码方式c和子序列视频图像组D对应编码方式d。
最后,根据各个子序列视频图像组的编码方式对对应的子序列视频图像进行独立编码,从而得到各个子序列视频图像组对应的子序列视频编码数据。例如,编码方式a对子序列视频图像组A中的各个子序列视频图像进行编码,得到子序列视频图像组A对应的子序列视频编码数据。其中,各个子序列视频图像组的编码过程是独立的,无任何依赖关系,可同时进行编码,提高视频编码的效率。
上述视频编码方法,根据序列生成规则对视频数据进行处理,得到多个独立的子序列视频图像,而各个子序列视频图像组中包括与序列生成规则对应的子序列图像。在进行编码时,各个独立的子序列视频图像根据对应的编码方式进行独立编码,各个子序列视频图像组的编码过程互不干扰、无任何依赖关系。通过序列生成规则将视频数据处理得到多个独立的子序列视频图像,且子序列视频图像中的子序列图像内容是不重叠的,因此只需对视频数据进行一次完整的编码,没有编码运算和存储上的冗余。进一步地,能够根据网络状况自适应调整子序列视频编码数据量,避免网络状况变化导致解码播放出现缓冲等待、播放卡顿或者停止播放等质量问题,提高视频播放的流畅性。
在一个实施例中,如图3所示,得到与各个子序列视频图像组对应的子序列视频编码数据之后,还包括:
步骤302,获取目标子序列数目。
其中,终端或服务器可以作为视频发送终端,用于对视频数据进行编码处理,向视频请求终端发送目标子序列视频编码数据的,而视频请求终端为视频发送终端的相对概念,视频请求终端用于向视频发送终端发送视频获取请求,该视频获取请求携带请求子序列数目。其中,视频请求终端可以根据自身的网络状况确定请求子序列数目,将请求子序列数目直接作为目标子序列数目。其中,视频请求终端的网络状况越好,请求子序列数目越多,反之视频请求终端的网络状况越差,请求子序列数目越少。
其中,视频发送终端接收到视频请求终端发送的视频获取请求后,该视频获取请求携带请求子序列数目,为了保证最终视频播放的连续性,视频发送终端可根据自身的当前网络状况调整请求子序列数目,将调整后的请求子序列数目作为目标子序列数目。
其中,视频发送终端接收到视频请求终端发送的视频获取请求后,该视频获取请求携带请求子序列数目,视频发送终端还可以再对视频请求终端的网络状况进行判断,根据判断结果调整请求子序列数目,将调整后的请求子序列数目作为目标子序列数目。
步骤304,选择与目标子序列数目对应的目标子序列视频图像组。
具体地,视频发送终端在获取到目标子序列数目后,从各个子序列视频图像组对应的子序列视频编码数据中选择与目标子序列数目对应的目标子序列视频图像组。其中,选择方式可自定义,自定义可以是根据子序列视频图像组标识依次选择与目标子序列数目对应的目标子序列视频图像组,例如,目标子序列数目为3,则选择子序列视频图像组1、子序列视频图像组2和子序列视频图像组3作为目标子序列视频图像组。自定义选择方式还可以是随机从各个子序列视频图像组对应的子序列视频编码数据中选择与目标子序列数目对应的目标子序列视频图像组,自定义选择方式还可以是从各个子序列视频图像组标识选择目标子序列视频图像组标识且符合目标子序列数目对应的目标子序列视频图像组,如目标子序列数目为3,目标子序列视频图像组标识为偶数标识,则选择子序列视频图像组2、子序列视频图像组4和子序列视频图像组6作为目标子序列视频图像组。
步骤306,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
具体地,在选择与目标子序列数目对应的目标子序列视频图像组后,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。其中,由于各个子序列视频图像组都是独立编码的,因此可以将各个目标子序列视频图像组对应的子序列视频编码数据按照子序列视频图像组标识组成目标编码数据。
例如,有2组目标子序列视频图像组,分别为目标子序列视频图像组0和目标子序列视频图像组1,目标子序列视频图像组0包括3个子序列视频编码数据,目标子序列视频图像组1包括3个子序列视频编码数据,将目标子序列视频图像组0和目标子序列视频图像组1按照子序列视频图像组标识组合生成目标编码数据,即目标编码数据包括目标子序列视频图像组0和目标子序列视频图像组1,但是目标子序列视频图像组0和目标子序列视频图像组1还是独立的子序列视频图像组,只是打包在一起组成目标编码数据。
在一个实施例中,如图4所示,获取目标子序列数目包括:
步骤402,接收视频请求终端发送的视频获取请求,视频获取请求中携带根据视频请求终端当前网络状态确定的请求子序列数目。
步骤404,将请求子序列数目作为目标子序列数目。
其中,视频获取请求是用于请求下发匹配的子序列视频图像组对应的编码数据的,视频请求终端可以通过相关的应用触发生成视频获取请求,视频获取请求中携带根据视频请求终端当前网络状态确定的请求子序列数目,其中若视频请求终端当前网络状态良好,则视频获取请求中携带的请求子序列数目较多,反之,若视频请求终端当前网络状态较差,则视频获取请求中携带的请求子序列数目较少,因此能够保证最后视频播放的连续性,防止视频请求终端因为网络状态而无法接收到数据量,从而导致播放中止或者卡顿。
具体地,视频请求终端可根据自身的当前网络状态确定请求子序列数目,并将请求子序列数目携带在视频获取请求中,将视频获取请求发送至视频发送终端,视频发送终端接收到视频获取请求后,直接将视频获取请求中携带的请求子序列数目作为目标子序列数目。
在一个实施例中,如图5所示,在图4所示的方法还包括:
步骤502,根据视频发送终端的当前网络状态调整请求子序列数目。
步骤504,将调整后的请求子序列数目作为目标子序列数目。
其中,当视频发送终端接收到视频请求终端发送的视频获取请求,获取到视频获取请求中携带的请求子序列数目,由于视频获取请求中携带的请求子序列数目是根据视频请求终端当前网络状态确定的,并没有考虑到视频发送终端的当前网络状态,若视频发送终端的当前网络状态出现变化时,则为了视频请求终端能够接收到数据,防止因为视频发送终端的当前网络状态导致数据传输出现问题,因此需要考虑视频发送终端的当前网络状态。
具体地,视频发送终端接收到视频请求终端发送的视频获取请求后,根据自身的当前网络状态调整视频获取请求携带的请求子序列数目,具体可以是若视频发送终端的当前网络状态较好,则可直接将视频获取请求携带的请求子序列数目作为目标子序列数目,若视频发送终端的当前网络状态较差,则对视频获取请求中携带的请求子序列数目进行调整,如减少请求子序列数目,最后将调整后的请求子序列数目作为目标子序列数目。
通过考虑视频发送终端和视频请求终端的网络状态因素,自适应根据视频发送终端和视频请求终端的网络状态调整请求子序列数目,能够保证视频发送终端和视频请求终端之间的数据传输的连续性,防止视频请求终端最终的播放过程中发生卡顿或者停止播放等问题。
在一个实施例中,序列生成规则包括时域生成规则,子序列图像为根据抽样间隔从原始视频图像中抽取得到的图像。
其中,序列生成规则是用来根据视频数据生成独立的子序列视频图像组的规则,该序列生成规则可以预先设置,序列生成规则包括但不限于时域生成规则和空域生成规则,其中时域生成规则可以是将视频数据按照时间轴排列进行抽样并划分得到各个独立的子序列视频图像组,划分规则可自定义,自定义划分规则可以是根据抽样间隔从视频数据中的原始视频图像中抽取得到子序列视频图像,将同一抽样间隔抽取得到的子序列视频图像组成独立的子序列视频图像组。其中,抽样间隔可根据实际业务需求或者实际应用场景进行设置。
其中,自定义划分规则还可以是根据预设序列生成算法确定视频数据中各个原始视频图像隶属的目标子序列视频图像组序号,将对应的原始视频图像归入至目标子序列视频图像组序号对应的子序列视频图像组中。
在一个实施例中,预设序列生成算法可以是根据子序列视频图像组总数目和各个子序列视频图像组对应的组标识确定各个子序列视频图像组对应的目标子序列图像标识,根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
在一个实施例中,如图6所示,根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,包括:
步骤602,获取子序列视频图像组总数目。
步骤604,获取各个子序列视频图像组对应的组标识。
其中,可预先根据实际业务需求或者实际应用场景设置子序列视频图像组数目,其中如果希望提供比较细腻、层次较多的可伸缩质量档次以适应网络状态的变化,则设置子序列视频图像组数目可以趋向较大,反之,子序列视频图像组数目设置可以趋向少一些。
具体地,获取预先设置子序列视频图像组的总数量,同时获取各个子序列视频图像组对应的组标识,这里的组标识是用来唯一标识子序列视频图像组的,可以预先为各个子序列视频图像组设置图像组序号,将图像组序号作为对应的组标识。例如,预先设置子序列视频图像组总数目为3,分别为子序列视频图像组0、子序列视频图像组1和子序列视频图像组2,其中各个子序列视频图像组对应的组标识分别为0、1、2。
步骤606,根据子序列视频图像组总数目和组标识确定各个子序列视频图像组对应的目标子序列图像标识。
具体地,在获取子序列视频图像组总数目和各个子序列视频图像组对应的组标识后,可根据子序列视频图像组总数目和各个子序列视频图像组对应的组标识确定各个子序列视频图像组对应的目标子序列图像标识。具体可以是根据子序列视频图像组总数目和各个子序列视频图像组对应的组标识通过预设公式计算得到各个子序列视频图像组对应的目标子序列图像标识,预设公式可自定义,可根据实际业务需求进行设置。
步骤608,根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
具体地,在根据子序列视频图像组总数目和组标识确定各个子序列视频图像组对应的目标子序列图像标识后,可根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
在一个实施例中,可以通过以下公式确定各个子序列视频图像组对应的目标子序列图像标识:
Figure GDA0002499698620000161
其中,
Figure GDA0002499698620000162
为自然数,N<M,N为各个子序列视频图像组对应的组标识,M为子序列视频图像组总数目,y为目标子序列图像标识,M、N为正整数。
例如,子序列视频图像组总数目M为3,子序列视频图像组0的组标识为0,则当
Figure GDA0002499698620000163
取0时,0*3+0=0,则视频数据中的第0帧原始视频图像归入到子序列视频图像组0中,当
Figure GDA0002499698620000164
取1时,1*3+0=3,则视频数据中的第3帧原始视频图像归入到子序列视频图像组中。其中,第0帧、第3帧为原始视频图像对应的帧标识。
具体可如图6A所示,图6A示出一个实施例中子序列视频图像组生成步骤的示例图,视频数据包括第0帧原始视频图像、第1帧原始视频图像、第2帧原始视频图像等等,图6A中示出3个子序列视频图像组,分别为子序列视频图像组0、子序列视频图像组1和子序列视频图像组2,根据上述公式确定子序列视频图像组0对应的子序列图像为第0帧原始视频图像、第3帧原始视频图像、第6帧原始视频图像、第9帧原始视频图像、第12帧原始视频图像、第15帧原始视频图像……,子序列视频图像组1对应的子序列图像为第1帧原始视频图像、第4帧原始视频图像、第7帧原始视频图像、第10帧原始视频图像、第13帧原始视频图像、第16帧原始视频图像……,子序列视频图像组2对应的子序列图像为第2帧原始视频图像、第5帧原始视频图像、第8帧原始视频图像、第11帧原始视频图像、第14帧原始视频图像、第17帧原始视频图像……。
在一个实施例中,序列生成规则包括空域生成规则,子序列图像为对原始视频图像进行下采样得到的图像。
其中,序列生成规则是用来根据视频数据生成独立的子序列视频图像组的规则,该序列生成规则可以预先设置,序列生成规则包括但不限于时域生成规则和空域生成规则。其中空域生成规则可以是通过对视频数据中的原始视频图像进行下采样得到各个独立的子序列视频图像组,具体方式可自定义,自定义可以是对视频数据中的各个原始视频图像进行下采样得到预设数量个相同分辨率的子视频帧,其中子视频帧的分辨率小于未进行下采样之前的原始视频图像的分辨率,再按照预设规则确定各个子视频帧对应的子视频帧序号,根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组中,从而得到多个独立的子序列视频图像组。其中,同一子序列视频图像组的子视频帧的子视频帧序号可以是相同子视频帧序号,也可以是不同的子视频帧序号,具体可以根据实际业务需求以及业务场景进行设置。
在一个实施例中,如图7所示,根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,包括:
步骤702,对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的子视频帧集合,子视频帧集合中包括多个相同分辨率的子视频帧。
其中,下采样处理是指对原始视频图像进行下采样处理,得到对应的子视频帧。例如,当原始视频图像的分辨率为800*800像素,处理方式为水平以及垂直方向均进行1/2下采样时,下采样得到的子视频帧的分辨率为400*400像素。
具体地,通过下采样算法对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的预设数量个相同分辨率的子视频帧,由各个原始视频图像对应的子视频帧组成子视频帧集合。其中,在下采样过程中,可设置下采样比例。下采样的比例可以根据执行视频编码方法的设备如终端或者服务器的处理器能力得到。处理器处理能力强的设备对应的下采样比例大,处理器处理能力弱的设备对应的下采样比例小。可以设置处理器处理能力与下采样比例的对应关系,当需要进行编码时,获取处理器处理能力,根据处理器处理能力得到对应的下采样比例。例如,可以设置16位处理器对应的下采样比例为1/8,32位处理器对应的下采样比例为1/4。
在一个实施例中,如图7A所示,图7A示出一个实施例中子序列视频图像组生成步骤的示例图,图7A中对各个原始视频图像进行下采样处理,各个原始视频图像得到4张相同分辨率的子视频帧,由各个原始视频图像对应的各个相同分辨率的子视频帧组成子视频帧集合。
步骤704,将各个子视频帧集合中的子视频帧按照相同的规则确定对应的子视频帧序号。
其中,这里的规则是用来确定子视频帧集合中各个子视频帧的序号的规则,规则可自定义,自定义可以根据实际业务需求或者实际应用场景进行设置。自定义规则可以是根据子视频帧集合中的子视频帧的数量确定各个原始视频图像对应的子视频帧序号,自定义规则还可以是根据各个原始视频图像的子视频帧数量确定对应的原始视频图像中的各个子视频帧的子视频帧序号等等。
具体地,在对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的预设数量个子视频帧,可按照相同的规则确定各个原始视频图像的各个子视频帧对应的子视频帧序号。例如,可依次为各个原始视频图像的各个子视频帧分配序号,从0开始分配序号,或者还可以是为各个原始视频图像的各个子视频帧分配对应的子视频帧序号,如,图7A所示,第0帧原始视频图像进行下采样处理,得到4张相同分辨率的子视频帧,依次为各个子视频帧分配对应的子视频帧序号,如第0帧原始视频图像的第0号子视频帧,第0帧原始视频图像的第1号子视频帧,第0帧原始视频图像的第2号子视频帧,第0帧原始视频图像的第3号子视频帧。同样地,第1帧原始视频图像进行下采样处理,得到4张相同分辨率的子视频帧,依次为各个子视频帧分配对应的子视频帧序号,如第1帧原始视频图像的第0号子视频帧,第1帧原始视频图像的第1号子视频帧,第1帧原始视频图像的第2号子视频帧,第1帧原始视频图像的第3号子视频帧。按照相同的原理为各个原始视频图像的各个子视频帧分配对应的子视频帧序号,具体可如图7A所示。
步骤706,根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组。
具体地,在将各个子视频帧集合中的子视频帧按照相同的规则确定对应的子视频帧序号后,获取各个原始视频图像的顺序,如获取各个原始视频图像的帧标识,根据各个原始视频图像的帧标识可确定各个原始视频图像的顺序,再根据各个原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧,将相同子视频帧序号的子视频帧归入到同一个子序列视频图像组。其中归入方式可自定义,自定义归入方式可以是将相同子视频帧序号的子视频帧随机归入到子序列视频图像组中,保证相同子视频帧序号的子视频帧归入到同一个子序列视频图像组即可。自定义归入方式还可以是将相同子视频帧序号的子视频帧归入到对应的目标子序列视频图像组中,具体的目标子序列视频图像组的确定方式可自定义,可根据实际业务需求或者实际应用场景进行设置。自定义归入方式还可以是将相同子视频帧序号的子视频帧按照子序列视频图像组的组标识依次归入到子序列视频图像组中,保证相同子视频帧序号的子视频帧归入到同一个子序列视频图像组即可。
在一个实施例中,可图7A所示,首先,对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的4个相同分辨率的子视频帧,将各个原始视频图像的各个子视频帧按照相同规则确定对应的子视频帧序号,例如,第0帧原始视频图像的4个子视频帧对应的子视频帧序号为0-3,其他帧原始视频图像的4个子视频帧对应的子视频帧序号也为0-3。然后,再根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组,例如,根据原始视频图像的顺序将第0帧原始视频图像的第0号子视频帧、第1帧原始视频图像的第0号子视频帧、第2帧原始视频图像的第0号子视频帧……归入到同一个子序列视频图像组中,如将子视频帧序号为0的子视频帧按照原始图像的顺序归入到子序列视频图像组标识为0的子序列视频图像组中,将子序列视频帧序号为1的子视频帧按照原始图像的顺序归入到子序列视频图像组标识为1的子序列视频图像组中,将子序列视频帧序号为2的子视频帧按照原始图像的顺序归入到子序列视频图像组标识为2的子序列视频图像组中,子序列视频帧序号为3的子视频帧按照原始图像的顺序归入到子序列视频图像组标识为3的子序列视频图像组中等等。
在一个实施例中,如图8所示,提供了一种视频解码方法。本实施例主要以该方法应用于上述图1中的终端110或服务器120来举例说明。参照图8,该视频解码方法具体包括如下步骤:
步骤802,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配。
其中,目标编码数据与视频请求终端的网络状态匹配的编码数据,视频发送终端可预先存储各个已编码的编码数据,编码数据可以是各个独立的已编码好的子序列视频图像组,各个已编码好的子序列视频图像中包括多个已编码好的子序列视频编码数据。
具体地,视频请求终端根据自身的当前网络状态确定请求子序列数目,并向视频发送终端发送视频获取请求,视频获取请求中携带请求子序列数目,视频发送终端可根据请求子序列数目获取对应的子序列视频图像组对应的子序列视频编码数据,将子序列视频图像组对应的子序列视频编码数据作为目标编码数据返回至视频请求终端。其中,视频请求终端根据自身的当前网络状态确定请求子序列数目可遵循当前网络状态越好,请求子序列数目越多,当前网络状态越差,请求子序列数目越少的原则,能够保证视频发送终端和视频请求终端能够有数据的传输,保证视频请求终端最终的视频播放的流畅性,避免出现卡顿或者停止播放的问题存在。
步骤804,将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧。
其中,由于目标编码数据中的子序列视频图像组对应的子序列视频编码数据都是独立编码得到的,因此视频请求终端接收到视频发送终端返回的目标编码数据后,目标编码数据中的各个子序列视频图像组之间可完全独立解码,在解码次序上也无任何依赖关系。
具体地,视频请求终端接收到视频发送终端根据视频请求终端的网络状态返回的目标编码数据后,将目标编码数据中的各个子序列视频图像组对应的子序列视频编码数据进行独立解码,得到各个子序列视频图像组对应的子序列视频解码视频帧。
步骤806,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
具体地,在将目标编码数据中的各个子序列视频图像组对应的子序列视频编码数据进行独立解码,得到各个子序列视频图像组对应的子序列视频解码视频帧后,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。其中,拼接处理包括但不限于时域拼接方式和空域拼接方式,时域拼接方式是根据子序列视频解码视频帧对应的子序列图像标识进行排序得到的目标解码视频帧序列。而空域拼接方式是根据子序列视频解码视频帧对应的解码分辨率处理得到对应的中间子序列视频解码视频帧,根据中间子序列视频解码视频帧进行上采样处理从而得到目标解码视频帧序列。
上述视频解码方法,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配,将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。因此,在视频解码过程中,可根据视频请求终端的网络状态情况返回匹配的目标编码数据,能够避免网络状态情况影响视频请求终端出现缓冲等待、播放卡顿或者停止播放等质量问题,从而能够保证视频请求终端最终视频播放的流畅性。而且,目标编码数据中的各个子序列视频图像组可以独立解码,互不干扰,能够提高视频解码效率。
在一个实施例中,如图9所示,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,包括:
步骤902,向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端选择与请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
步骤904,接收视频发送终端返回的目标编码数据。
具体地,视频请求终端向视频发送终端发送视频获取请求,视频获取请求是用于请求目标编码数据的,视频获取请求中携带请求子序列数目,视频获取请求中携带的请求子序列数目是视频请求终端根据自身的网络状态确定得到的。视频请求终端根据自身网络状态确定请求子序列数目的原则可遵循网络状态越好,请求子序列数目越多,网络状态越差,请求子序列数目越少,视频请求终端可通过自身的网络状态调整请求子序列数目。进一步地,视频发送终端接收到视频请求终端发送的视频获取请求后,直接选择与视频获取请求中的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。最后,视频发送终端将目标编码数据返回至视频请求终端。
其中,视频发送终端选择与请求子序列数目对应的目标子序列视频图像组的选择方式可自定义,自定义选择方式可以是根据子序列视频图像组的组标识依次选择与请求子序列数目对应的目标子序列视频图像组,自定义选择方式还可以是根据请求子序列数目随机从存储的子序列视频图像组中选择对应的目标子序列视频图像组等等。
在一个实施例中,如图10所示,接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,包括:
步骤1002,向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端根据视频发送终端的当前网络状态调整请求子序列数目,选择与调整后的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
步骤1004,接收视频发送终端返回的目标编码数据。
具体地,视频请求终端向视频发送终端发送视频获取请求,视频获取请求是用于请求目标编码数据的,视频获取请求中携带请求子序列数目,视频获取请求中携带的请求子序列数目是视频请求终端根据自身的网络状态确定得到的。视频请求终端根据自身网络状态确定请求子序列数目的原则可遵循网络状态越好,请求子序列数目越多,网络状态越差,请求子序列数目越少,视频请求终端可通过自身的网络状态调整请求子序列数目。
其中,由于视频发送终端的网络状态也会影响到视频发送终端和视频请求终端之间的目标编码数据的传输,因此为了避免视频发送终端和视频请求终端之间出现数据传输失败等问题,还需要考虑到视频发送终端的当前网络状况,可根据视频发送终端的当前网络状况调整视频获取请求中的请求子序列数目。具体地,视频发送终端在接收到视频请求终端发送的视频获取请求后,视频发送终端根据自身的当前网络状态调整视频获取请求中的请求子序列数目,选择与调整后的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。最后,视频发送终端将目标编码数据返回至视频请求终端。
在一个实施例中,如图11所示,该视频解码方法还包括:
步骤1102,获取目标解码分辨率。
步骤1104,获取各个子序列视频解码视频帧对应的当前解码分辨率。
其中,目标解码分辨率是指与目标编码数据对应的解码分辨率,而当前解码分辨率是指与子序列视频解码视频帧对应的解码分辨率。具体地,视频请求终端在接收视频发送终端返回的目标编码数据后,获取目标编码数据中的目标解码分辨率,获取目标编码数据中各个子序列视频解码视频帧对应的当前解码分辨率。
例如,目标编码数据的目标解码分辨率为100*100,而各个子序列视频解码视频帧对应的编码数据是通过时域序列生成规则处理得到的,则各个子序列视频解码视频帧的当前解码分辨率为100*100,若各个子序列视频解码视频帧对应的编码数据是通过空域序列生成规则处理得到的,则各个子序列视频解码视频帧的当前解码分辨率为50*50。即,目标解码分辨率可以与各个子序列视频解码视频帧对应的当前解码分辨率相同,也可以与各个子序列视频解码视频帧对应的当前解码分辨率不同,具体可根据各个子序列视频解码视频帧对应的编码数据对应的序列生成规则确定得到。
步骤1106,根据当前解码分辨率和目标解码分辨率从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
具体地,在获取目标解码分辨率和各个子序列视频解码视频帧对应的当前解码分辨率后,可根据当前解码分辨率和目标解码分辨率从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式。其中,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
其中,根据当前解码分辨率和目标解码分辨率从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式具体可以是当当前解码分辨率和目标解码分辨率相同时,则从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式为时域拼接方式。当当前解码分辨率小于目标解码分辨率时,则从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式为空域拼接方式。
在一个实施例中,如图12所示,该视频解码方法还包括:
步骤1202,获取目标编码数据中携带的拼接方式信息。
步骤1204,根据拼接方式信息确定各个子序列视频图像组对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
其中,目标编码数据中在编码过程中将拼接方式信息携带在目标编码数据中,可直接获取目标编码数据中携带的拼接方式信息。这里的拼接方式信息是与子序列视频图像组拼接方式相关的信息,可通过拼接方式信息确定各个子序列视频图像组对应的目标拼接方式。具体地,获取目标编码数据中携带的拼接方式信息,根据获取到的拼接方式直接从候选拼接方式中确定各个子序列视频图像组对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
例如,当目标编码数据中携带的拼接方式信息为时域拼接方式相关的信息,则可直接确定各个子序列视频图像组对应的目标拼接方式为时域拼接方式。同样地,当目标编码数据中携带的拼接方式信息为空域拼接方式相关的信息,则可直接确定各个子序列视频图像组对应的目标拼接方式为空域拼接方式。
在一个实施例中,如图13所示,目标拼接方式为时域拼接方式,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列,包括:
步骤1302,获取各个子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识。
步骤1304,将各个子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列。
其中,当确定各个子序列视频图像组对应的目标拼接方式为时域拼接方式时,说明各个子序列视频图像组在编码过程中采取的是时域生成规则处理得到的各个独立的子序列视频图像组。具体地,获取各个子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识,这里的子序列图像标识是用来唯一标识子序列视频解码视频帧的。子序列视频图像组中的子序列视频解码视频帧在编码过程中就已经分配有对应的子序列图像标识了,因此可直接获取各个子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识。进一步地,将各个子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列。其中排序的方式可自定义,自定义可以是子序列图像标识按照从小到大的顺序进行排序得到对应的目标解码视频帧序列。
例如,当确定各个子序列视频图像组对应的目标拼接方式为时域拼接方式时,目标编码数据中的各个子序列视频图像组的子序列视频解码视频帧分别为:子序列视频图像组0中包括子序列视频解码视频帧0、子列视频解码视频帧3、子列视频解码视频帧6、子列视频解码视频帧9、子列视频解码视频帧12、子列视频解码视频帧15,子序列视频图像组1中包括子序列视频解码视频帧1、子列视频解码视频帧4、子列视频解码视频帧7、子列视频解码视频帧10、子列视频解码视频帧13、子列视频解码视频帧16,然后当确定各个子序列视频图像组对应的目标拼接方式为时域拼接方式时,将各个子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列,目标解码视频帧序列为:子序列视频解码视频帧0、子序列视频解码视频帧1、子列视频解码视频帧3、子列视频解码视频帧4、子列视频解码视频帧6、子列视频解码视频帧7、子列视频解码视频帧9、子列视频解码视频帧10、子列视频解码视频帧12、子列视频解码视频帧13、子列视频解码视频帧15、子列视频解码视频帧16。
通过这种时域拼接方式,在视频请求终端的当前网络状态较优时,视频请求终端会请求更多甚至全部子序列视频图像组,于是视频请求终端能够解码输出得到更多、甚至全部原本视频数据中的全部子序列视频解码帧,进行排序或者插帧后,对用户而言,其体验是看到的视频帧率越来越高、观影体验越来越好。反之,当视频请求终端的当前网络状态变差时,视频发送终端会减少请求子序列数目,甚至仅保留一路子序列视频图像组,于是视频请求终端可解码输出得到越来越少的子序列视频解码帧,进行丢帧后,由于请求的子序列数目变少了,所以能够避免网络状况较差条件下的缓冲等待、播放卡顿或者停止等更差的观影体验。
在一个实施例中,如图14所示,目标拼接方式为空域拼接方式,将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列,包括:
步骤1402,获取各个子序列视频图像组的子序列视频解码视频帧对应的当前解码分辨率。
步骤1404,根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧,中间子序列视频解码视频帧的分辨率大于当前解码分辨率。
其中,当确定各个子序列视频图像组对应的目标拼接方式为空域拼接方式时,说明各个子序列视频图像组在编码过程中采取的是空域生成规则处理得到的各个独立的子序列视频图像组。具体地,获取各个子序列视频图像组的子序列视频解码视频帧对应的当前解码分辨率,根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧,中间子序列视频解码视频帧的分辨率大于当前解码分辨率。其中,相同帧号是指子序列视频解码帧对应的编码数据是属于同一帧的子序列视频解码帧。例如,如图7A所示,假设图7A中的子序列视频图像组为解码过程中的子序列视频图像组,则图7A中的子序列视频图像组0中第1个0号子序列视频解码视频帧和子序列视频图像组1中第1个1号子序列视频解码视频帧、子序列视频图像组2中第1个2号子序列视频解码视频帧、子序列视频图像组3中第1个3号子序列视频解码视频帧都属于相同帧号的子序列视频解码视频帧。
其中,根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧具体可以是根据相同帧号的各个子序列视频解码视频帧的当前解码分辨率计算得到新的解码分辨率,将新的解码分辨率对应的子序列视频解码视频帧作为对应的中间子序列视频解码视频帧。
步骤1406,对各个中间子序列视频解码帧进行上采样处理,得到对应的目标解码视频帧序列。
其中,上采样处理是指对中间子序列视频解码帧进行上采样处理,使得目标解码视频帧序列得到较高分辨率图像。具体地,在得到各个中间子序列视频解码帧后,对各个中间子序列视频解码帧进行上采样处理,得到对应的目标解码视频帧序列。其中,进行上采样处理的上采样方法可以采用现有技术中的上采样处理方式,在此不再对上采样处理的详细步骤做赘述。
通过这种空域拼接方式,在视频请求终端的当前网络状态较优时,目标编码数据中包括更多甚至是全部子序列视频图像组,因此视频请求终端可解码出更多的、甚至全部低分辨率的子序列视频图像组中的子序列视频解码帧,利用若干分辨率图像可进行上采样处理得到高分辨率图像,对用于而言,其体验是看到的视频图像分辨率越来越高、观影体验越来越好。反之,当视频请求终端的网络状态变差时,视频发送终端会减少请求子序列数目,甚至仅保留一路子序列视频图像组,于是视频请求终端可解码输出得到越来越少的低分辨率子序列视频解码视频帧,于是进行上采样得到的分辨率变低、甚至仅一路最低分辨率图像,但是由于请求的子序列数目变少,所以能够避免弱网条件下的缓冲等待、播放卡顿或者停止等更差的观影体验。
在一个具体的实施例中,提供可一种视频编码方法和视频解码方法,本实施例主要以该方法应用于上述图1中的终端110或服务器120来举例说明。具体包括以下步骤:
1、获取视频数据,视频数据包括多个原始视频图像。
2、根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像。
2-1、序列生成规则包括时域生成规则,子序列图像为根据抽样间隔从原始视频图像中抽取得到的图像。
2-1-1、获取子序列视频图像组总数目。
2-1-2、获取各个子序列视频图像组对应的组标识。
2-1-3、根据子序列视频图像组总数目和组标识确定各个子序列视频图像组对应的目标子序列图像标识。
2-1-4、根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
2-2、序列生成规则包括空域生成规则,子序列图像为对原始视频图像进行下采样得到的图像。
2-2-1、对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的子视频帧集合,子视频帧集合中包括多个相同分辨率的子视频帧。
2-2-2、将各个子视频帧集合中的子视频帧按照相同的规则确定对应的子视频帧序号。
2-2-3、根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组。
3、获取各个子序列视频图像组对应的编码方式。
4、根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
5、获取目标子序列数目。
5-1、接收视频请求终端发送的视频获取请求,视频获取请求中携带根据视频请求终端当前网络状态确定的请求子序列数目,将请求子序列数目作为目标子序列数目。
5-2、根据视频发送终端的当前网络状态调整请求子序列数目,将调整后的请求子序列数目作为目标子序列数目。
6、选择与目标子序列数目对应的目标子序列视频图像组。
7、将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
8、接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配。
8-1、向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端选择与请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据,接收视频发送终端返回的目标编码数据。
8-2、向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端根据视频发送终端的当前网络状态调整请求子序列数目,选择与调整后的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据,接收视频发送终端返回的目标编码数据。
9、将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧。
10、确定各个子序列视频编码数据对应的目标拼接方式。
10-1、获取目标解码分辨率,获取各个子序列视频解码视频帧对应的当前解码分辨率,根据当前解码分辨率和目标解码分辨率从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
10-2、获取目标编码数据中携带的拼接方式信息,根据拼接方式信息确定各个子序列视频图像组对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
11、根据目标拼接方式对各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
11-1、当目标拼接方式为时域拼接方式时,获取各个子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识,将各个子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列。
11-2、当目标拼接方式为空域拼接方式时,获取各个子序列视频图像组的子序列视频解码视频帧对应的当前解码分辨率,根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧,中间子序列视频解码视频帧的分辨率大于当前解码分辨率,对各个中间子序列视频解码帧进行上采样处理,得到对应的目标解码视频帧序列。
在一个视频编解码应用场景中,如图15所示,图15示出一个实施例中视频编解码的原理示意图,如图15所示,根据以下内容对图15中的步骤进行详细说明:
S1:“原始片源转码”模块负责将原始片源转码为流媒体业务所需要的多路码流,具体可分为几个子步骤:将原始片源图像序列分为若干子序列视频图像组,每一个子序列视频图像组进入对应的子序列视频图像组编码模块进行编码。子序列视频图像组的数量由具体实施业务来决定,则原则是如果流媒体业务希望提供比较细腻、层次较多的可伸缩质量档次以适应网络状态的变化,则分组的数量可以趋向较大;反之,分组数量趋向少一些。
1)第一种分组将视频数据中的各个原始视频图像按照时间轴排列进行抽样并划分为对应的子序列视频图像组,假定流媒体业务希望提供M档质量可伸缩(M为子序列视频图像组的总数目),则编号为N的子序列视频图像组由视频数据中序号为
Figure GDA0002499698620000301
的原始视频图像组成,其中
Figure GDA0002499698620000302
为自然数,N<M,M、N为正整数,以时间轴抽样得到子序列的方法可以提供图像时域质量可伸缩性(Temporal Scalability),即通过实际解码图像帧率的高低来适配网络状态的变化,具体而言,网络吞吐量/带宽越高,影片帧率越高;反之,则可逐步降低以节省需要传输的数据。具体可参考图6A所示。
2)第二种分组办法是通过视频数据中各个原始视频图像进行下采样(DownSampling)得到若干低分辨率子序列图像,这些低分辨率子序列图像组成对应的子序列视频图像组。类似地,可以根据业务提供的可伸缩质量等级的细腻度来具体决定下采样的深度;相应地,在解码和播放端可以根据网络实际状况,选择请求多少路子序列,当网络实际带宽增加时,获取的子序列越多,得到的低分辨率图像越多则可以恢复出更优质量的高分辨率图像,反之,则可通过仅请求子序列来达到节省数据传输以适配低带宽的效果,实现空域质量可伸缩性(Spatial Scalability)。图像下采样算法属于公开性的成熟技术,其实现并不影响本发明的实施效果,故不再赘述。具体可参考图7A所示。
进一步地,使用现有成熟的视频编码标准对各个子序列视频图像组进行编码。需要特别说明的是,为了完全兼容现有市场上的解码设备和系统,本发明在此环境仅使用公开视频编码标准基准档次范围内的算法工具。而且由于各子序列的编码是完全分开进行的,故各个子序列视频图像组的输出码流之间可完全独立解码,(在解码次序上)无任何依赖关系。又因为各个子序列视频图像组在图像内容上是不重叠的,所以对于视频数据中的各个原始视频图像本发明只完整编码了一次,没有编码运算和存储上的冗余。
S2:负责传输S1输出的各个子序列视频图像组对应的子序列视频编码数据。
S3:可通过过往的实际下载速度、超时率、错误率等信息来判断和预测未来一段时间内网络条件的好坏。具体的预测算法随应用具体实施,例如可以使用过往一段时间内的平均下载速度作为后续下载速度的预测值。其判断的时间周期亦可灵活设置,例如可以每5秒判断一次,或者在HLS/DASH协议中每个切片文件下载完成后。
S4:当根据S3的输出需要升高视频质量时,首先保持当前请求子序列码流不变,然后同时请求额外的子序列码流;反之,当根据S3的输出需要降低视频质量时,可依据一定规则断开请求若干子序列码流。需要指出的是,根据S3的输出具体决定多请求或者断开请求多少子序列码流,可由具体业务灵活决定,其执行策略并不会影响本发明整体方案的实施。
S5:S1模块划分出的子序列视频图像组是独立编码的,所以在解码端各个子序列视频图像组之间可独立解码、不存在顺序依赖关系。并且由于本发明方案仅需使用现有公开视频编码标准基准档次范围内的算法工具,故目前市场上主流设备均可支持。
S6:将S5输出的子序列视频图像组按照S1模块对子序列视频图像组划分算法的逆向运算进行增强得到更高或者更低质量的图像质量,以实现视频质量的可伸缩性。
举例而言,假设:1)、该流媒体业务提供时域质量可伸缩性,那么当网络状况较优时,S4模块会请求更多甚至全部子序列视频图像组,于是S5可解码输出得到更多的、甚至全部原始图像序列时间轴上的图像帧,进行排序及插帧后,对用户而言,其体验是看到的视频帧率越来越高、观影体验越来越好。反之,当网络状况变差时,S4模块会减少请求子序列码流、甚至仅保留一路子序列码流,于是S5可解码输出得到越来越少的图像帧,进行丢帧后,由于请求的视频数据量变少,所以能避免弱网条件下的缓冲等待、播放卡顿或停止等更差的观影体验。
2)、该流媒体业务提供空域质量可伸缩性,那么当网络状况较优时,S4模块会请求更多甚至全部子序列码流,于是S5可解码输出得到更多的、甚至全部低分辨率的子序列图像帧,利用若干低分辨率图像可进行上采样(Up Sampling)得到高分辨率图像,对用户而言,其体验是看到的视频图像分辨率越来越高、观影体验越来越好。反之,当网络状况变差时,S4模块会减少请求子序列码流、甚至仅保留一路子序列码流,于是S5可解码输出得到越来越少的低分辨率图像帧,于是上采样得到的分辨率变低、甚至仅一路最低分辨率图像,由于请求的视频数据量变少,所以能避免弱网条件下的缓冲等待、播放卡顿或停止等更差的观影体验。
S7:将S6输出的目标解码视频帧序列通过外设进行显示。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图16所示,提供了一种视频编码装置1600,该装置包括:
视频数据获取模块1602,用于获取视频数据,视频数据包括多个原始视频图像。
视频数据处理模块1604,用于根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像。
编码方式获取模块1606,用于获取各个子序列视频图像组对应的编码方式。
子序列视频图像组编码模块1608,用于根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
上述视频编码装置,通过视频数据处理模块根据序列生成规则对视频数据进行处理,得到多个独立的子序列视频图像,而各个子序列视频图像组中包括与序列生成规则对应的子序列图像。而子序列视频图像组编码模块在进行编码时,各个独立的子序列视频图像根据对应的编码方式进行独立编码,各个子序列视频图像组的编码过程互不干扰、无任何依赖关系。通过序列生成规则将视频数据处理得到多个独立的子序列视频图像,且子序列视频图像中的子序列图像内容是不重叠的,因此只需对视频数据进行一次完整的编码,没有编码运算和存储上的冗余。进一步地,能够根据网络状况自适应调整子序列视频编码数据量,避免网络状况变化导致解码播放出现缓冲等待、播放卡顿或者停止播放等质量问题,提高视频播放的流畅性。
在一个实施例中,如图17所示,该视频编码装置1600还包括:
目标子序列数目获取模块1610,用于获取目标子序列数目。
目标子序列视频图像组选择模块1612,用于选择与目标子序列数目对应的目标子序列视频图像组。
目标编码数据生成模块1614,用于将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
在一个实施例中,目标子序列数目获取模块1610还用于接收视频请求终端发送的视频获取请求,视频获取请求中携带根据视频请求终端当前网络状态确定的请求子序列数目,将请求子序列数目作为目标子序列数目。
在一个实施例中,目标子序列数目获取模块1610还用于根据视频发送终端的当前网络状态调整请求子序列数目,将调整后的请求子序列数目作为目标子序列数目。
在一个实施例中,序列生成规则包括时域生成规则,子序列图像为根据抽样间隔从原始视频图像中抽取得到的图像。
在一个实施例中,如图18所示,视频数据处理模块1604包括:
子序列视频图像组总数目获取单元1604a,用于获取子序列视频图像组总数目。
组标识获取单元1604b,用于获取各个子序列视频图像组对应的组标识。
目标子序列图像标识确定单元1604c,用于根据子序列视频图像组总数目和组标识确定各个子序列视频图像组对应的目标子序列图像标识。
子序列图像抽取单元1604d,用于根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
在一个实施例中,序列生成规则包括空域生成规则,子序列图像为对原始视频图像进行下采样得到的图像。
在一个实施例中,如图19所示,视频数据处理模块1604包括:
原始视频图像下采样单元1902,用于对各个原始视频图像进行下采样处理,得到各个原始视频图像对应的子视频帧集合,子视频帧集合中包括多个相同分辨率的子视频帧。
子视频帧序号确定单元1904,用于将各个子视频帧集合中的子视频帧按照相同的规则确定对应的子视频帧序号。
原始视频图像处理单元1906,用于根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组。
在一个实施例中,如图20所示,提供了一种视频解码装置2000,该装置包括:
目标编码数据接收模块2002,用于接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配。
编码数据解码模块2004,用于将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧。
视频帧拼接模块2006,用于将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
在一个实施例中,目标编码数据接收模块2002还用于向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端选择与请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据,接收视频发送终端返回的目标编码数据。
在一个实施例中,目标编码数据接收模块2002还用于向视频发送终端发送视频获取请求,视频获取请求携带根据视频请求终端的网络状态确定的请求子序列数目,以使视频发送终端根据视频发送终端的当前网络状态调整请求子序列数目,选择与调整后的请求子序列数目对应的目标子序列视频图像组,将目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据,接收视频发送终端返回的目标编码数据。
在一个实施例中,如图21所示,该视频解码装置2000还包括:
目标解码分辨率获取模块2008,用于获取目标解码分辨率。
当前解码分辨率获取模块2010,用于获取各个子序列视频解码视频帧对应的当前解码分辨率。
目标拼接方式确定模块2012,用于根据当前解码分辨率和目标解码分辨率从候选拼接方式中确定各个子序列视频编码数据对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
在一个实施例中,如图22所示,该视频解码装置2000还包括:
拼接方式信息获取模块2014,用于获取目标编码数据中携带的拼接方式信息。
拼接方式信息处理模块2016,用于根据拼接方式信息确定各个子序列视频图像组对应的目标拼接方式,目标拼接方式为候选拼接方式中的一种,候选拼接方式包括时域拼接方式和空域拼接方式。
在一个实施例中,目标拼接方式为时域拼接方式,视频帧拼接模块2006还用于获取各个子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识,将各个子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列。
在一个实施例中,目标拼接方式为空域拼接方式,视频帧拼接模块2006还用于获取各个子序列视频图像组的子序列视频解码视频帧对应的当前解码分辨率,根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧,中间子序列视频解码视频帧的分辨率大于当前解码分辨率,对各个中间子序列视频解码帧进行上采样处理,得到对应的目标解码视频帧序列。
图23示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110或服务器120。如图23所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法或者视频解码方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法或者视频解码方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图23中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的视频编码装置或者视频解码装置可以实现为一种计算机程序的形式,计算机程序可在如图23所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置或者视频解码装置的各个程序模块,比如,图16所示的视频数据获取模块、视频数据处理模块、编码方式获取模块和子序列视频图像组编码模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。又比如,图20所示的目标编码数据接收模块、编码数据解码模块和视频帧拼接模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频解码方法中的步骤。
例如,图23所示的计算机设备可以通过如图16所示的视频编码装置中的视频数据获取模块执行获取视频数据,视频数据包括多个原始视频图像。视频数据处理模块执行根据序列生成规则对视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与序列生成规则对应的子序列图像。编码方式获取模块执行获取各个子序列视频图像组对应的编码方式。子序列视频图像组编码模块执行根据编码方式对对应的子序列视频图像组进行独立编码,得到与各个子序列视频图像组对应的子序列视频编码数据。
又例如,图23所示的计算机设备可以通过如图20所示的视频编码装置中的目标编码数据接收模块执行接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,目标编码数据包括子序列视频图像组对应的子序列视频编码数据,子序列视频图像组的总数目与网络状态匹配。编码数据解码模块执行将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧。视频帧拼接模块执行将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法或者视频解码方法的步骤。此处视频编码方法或者视频解码方法的步骤可以是上述各个实施例的视频编码方法或者视频解码方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法或者视频解码方法的步骤。此处视频编码方法或者视频解码方法的步骤可以是上述各个实施例的视频编码方法或者视频解码方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种视频编码方法,包括:
获取视频数据,所述视频数据包括多个原始视频图像;
根据序列生成规则对所述视频数据进行处理得到多个独立的子序列视频图像组,各个子序列视频图像组中包括与所述序列生成规则对应的子序列图像;
获取各个所述子序列视频图像组对应的编码方式;
根据所述编码方式对对应的子序列视频图像组进行独立编码,得到与各个所述子序列视频图像组对应的子序列视频编码数据;
其中,不同的子序列视频图像组存在不同的编码方式,不同的子序列视频图像组之间能够独立编码,各个子序列视频图像组在编码过程中无任何依赖关系;
预先建立各个子序列视频图像组标识与对应的编码方式之间的关系,在各个子序列视频图像组中的子序列视频图像需要进行编码时,通过子序列视频图像组标识获取对应的编码方式。
2.根据权利要求1所述的方法,其特征在于,所述得到与各个所述子序列视频图像组对应的子序列视频编码数据之后,还包括:
获取目标子序列数目;
选择与所述目标子序列数目对应的目标子序列视频图像组;
将所述目标子序列视频图像组对应的子序列视频编码数据组合生成目标编码数据。
3.根据权利要求2所述的方法,其特征在于,所述获取目标子序列数目包括:
接收视频请求终端发送的视频获取请求,所述视频获取请求中携带根据视频请求终端当前网络状态确定的请求子序列数目;
将所述请求子序列数目作为所述目标子序列数目。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据视频发送终端的当前网络状态调整所述请求子序列数目;
将调整后的请求子序列数目作为所述目标子序列数目。
5.根据权利要求1所述的方法,其特征在于,所述序列生成规则包括时域生成规则,所述子序列图像为根据抽样间隔从原始视频图像中抽取得到的图像。
6.根据权利要求5所述的方法,其特征在于,所述根据序列生成规则对所述视频数据进行处理得到多个独立的子序列视频图像组,包括:
获取子序列视频图像组总数目;
获取各个子序列视频图像组对应的组标识;
根据所述子序列视频图像组总数目和所述组标识确定各个子序列视频图像组对应的目标子序列图像标识;
根据各个子序列视频图像组对应的目标子序列图像标识和各个原始视频图像对应的帧标识,从所述原始视频图像中抽取得到各个子序列视频图像组对应的子序列图像。
7.根据权利要求1所述的方法,其特征在于,所述序列生成规则包括空域生成规则,所述子序列图像为对原始视频图像进行下采样得到的图像。
8.根据权利要求7所述的方法,其特征在于,所述根据序列生成规则对所述视频数据进行处理得到多个独立的子序列视频图像组,包括:
对各个所述原始视频图像进行下采样处理,得到各个原始视频图像对应的子视频帧集合,所述子视频帧集合中包括多个相同分辨率的子视频帧;
将各个子视频帧集合中的子视频帧按照相同的规则确定对应的子视频帧序号;
根据原始视频图像的顺序依次获取各个原始视频图像对应的相同子视频帧序号的子视频帧归入同一个子序列视频图像组。
9.一种视频解码方法,包括:
接收视频发送终端根据视频请求终端的网络状态返回的目标编码数据,所述目标编码数据包括子序列视频图像组对应的子序列视频编码数据,所述子序列视频图像组的总数目与所述网络状态匹配;
将子序列视频图像组对应的子序列视频编码数据进行独立解码得到各个子序列视频图像组对应的子序列视频解码视频帧;
将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列;
其中,不同的子序列视频图像组存在不同的编码方式,不同的子序列视频图像组之间能够独立编码,各个子序列视频图像组在形成子序列视频编码数据过程中无任何依赖关系;
通过子序列视频图像组标识获取对应的编码方式,所述各个子序列视频图像组标识与对应的编码方式之间的关系被预先建立。
10.根据权利要求9所述的方法,所述方法还包括:
获取目标解码分辨率;
获取各个所述子序列视频解码视频帧对应的当前解码分辨率;
根据所述当前解码分辨率和所述目标解码分辨率从候选拼接方式中确定各个所述子序列视频编码数据对应的目标拼接方式,所述目标拼接方式为候选拼接方式中的一种,所述候选拼接方式包括时域拼接方式和空域拼接方式。
11.根据权利要求9所述的方法,所述方法还包括:
获取所述目标编码数据中携带的拼接方式信息;
根据所述拼接方式信息确定各个子序列视频图像组对应的目标拼接方式,所述目标拼接方式为候选拼接方式中的一种,所述候选拼接方式包括时域拼接方式和空域拼接方式。
12.根据权利要求10或11所述的方法,其特征在于,所述目标拼接方式为时域拼接方式,所述将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列,包括:
获取各个所述子序列视频图像组的子序列视频解码视频帧对应的子序列图像标识;
将各个所述子序列视频解码视频帧根据子序列图像标识进行排序得到对应的目标解码视频帧序列。
13.根据权利要求10或11所述的方法,其特征在于,所述目标拼接方式为空域拼接方式,所述将各个子序列视频图像组对应的子序列视频解码视频帧进行拼接处理得到对应的目标解码视频帧序列,包括:
获取各个子序列视频图像组的子序列视频解码视频帧对应的当前解码分辨率;
根据当前解码分辨率将相同帧号的子序列视频解码视频帧进行处理得到对应的中间子序列视频解码视频帧,所述中间子序列视频解码视频帧的分辨率大于所述当前解码分辨率;
对各个所述中间子序列视频解码帧进行上采样处理,得到对应的目标解码视频帧序列。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至13中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至13中任一项所述方法的步骤。
CN201910426978.7A 2019-05-22 2019-05-22 视频编码方法和视频解码方法 Active CN110049336B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910426978.7A CN110049336B (zh) 2019-05-22 2019-05-22 视频编码方法和视频解码方法
PCT/CN2020/090143 WO2020233483A1 (zh) 2019-05-22 2020-05-14 视频编码方法和视频解码方法
US17/387,594 US20210360047A1 (en) 2019-05-22 2021-07-28 Video coding method and video decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910426978.7A CN110049336B (zh) 2019-05-22 2019-05-22 视频编码方法和视频解码方法

Publications (2)

Publication Number Publication Date
CN110049336A CN110049336A (zh) 2019-07-23
CN110049336B true CN110049336B (zh) 2020-08-25

Family

ID=67283046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910426978.7A Active CN110049336B (zh) 2019-05-22 2019-05-22 视频编码方法和视频解码方法

Country Status (3)

Country Link
US (1) US20210360047A1 (zh)
CN (1) CN110049336B (zh)
WO (1) WO2020233483A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110049336B (zh) * 2019-05-22 2020-08-25 腾讯科技(深圳)有限公司 视频编码方法和视频解码方法
CN110490845A (zh) * 2019-07-26 2019-11-22 北京大米科技有限公司 一种图像特征提取方法、装置、存储介质及电子设备
CN111726655B (zh) 2020-07-02 2022-09-06 中影华夏寰宇(北京)电影科技有限公司 视频处理装置、方法和系统
CN111770347A (zh) * 2020-07-17 2020-10-13 广州市奥威亚电子科技有限公司 一种视频传输方法及系统
CN114257839A (zh) * 2020-09-23 2022-03-29 京东方科技集团股份有限公司 视频编码装置及解码装置、播放系统及方法
CN112261441A (zh) * 2020-10-12 2021-01-22 康佳集团股份有限公司 一种视频数据的处理方法、系统、设备及存储介质
CN114079821B (zh) * 2021-11-18 2024-02-20 福建汇川物联网技术科技股份有限公司 一种视频播放方法、装置、电子设备和可读存储介质
CN117135364B (zh) * 2023-10-26 2024-02-02 深圳市宏辉智通科技有限公司 一种视频解码方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724560A (zh) * 2012-06-28 2012-10-10 广东威创视讯科技股份有限公司 视频数据显示方法及其装置
CN108848381A (zh) * 2018-06-20 2018-11-20 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108924592A (zh) * 2018-08-06 2018-11-30 青岛海信传媒网络技术有限公司 一种视频处理的方法及设备
CN109151481A (zh) * 2017-06-28 2019-01-04 腾讯科技(深圳)有限公司 图片的传输和接收的方法、装置及其系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856228A1 (fr) * 2003-06-12 2004-12-17 France Telecom Procede et dispositif de codage et de decodage d'une sequence d'images video
US20060050787A1 (en) * 2004-09-07 2006-03-09 Lsi Logic Corporation Method and/or apparatus for encoding and/or decoding digital video together with an n-bit alpha plane
CN102006479B (zh) * 2010-11-30 2012-07-04 北方工业大学 面向场景切换的多描述视频编码方法
KR20140098608A (ko) * 2013-01-31 2014-08-08 한국전자통신연구원 스트리밍 기반 게임 영상 제공 장치 및 방법
CN105103554A (zh) * 2013-03-28 2015-11-25 华为技术有限公司 用于保护视频帧序列防止包丢失的方法
EP3664446A1 (en) * 2017-09-06 2020-06-10 SZ DJI Technology Co., Ltd. Method and device for transmitting wireless data
CN109068169A (zh) * 2018-08-06 2018-12-21 青岛海信传媒网络技术有限公司 一种视频播放方法及装置
CN110049336B (zh) * 2019-05-22 2020-08-25 腾讯科技(深圳)有限公司 视频编码方法和视频解码方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724560A (zh) * 2012-06-28 2012-10-10 广东威创视讯科技股份有限公司 视频数据显示方法及其装置
CN109151481A (zh) * 2017-06-28 2019-01-04 腾讯科技(深圳)有限公司 图片的传输和接收的方法、装置及其系统
CN108848381A (zh) * 2018-06-20 2018-11-20 腾讯科技(深圳)有限公司 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108924592A (zh) * 2018-08-06 2018-11-30 青岛海信传媒网络技术有限公司 一种视频处理的方法及设备

Also Published As

Publication number Publication date
WO2020233483A1 (zh) 2020-11-26
US20210360047A1 (en) 2021-11-18
CN110049336A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
CN110049336B (zh) 视频编码方法和视频解码方法
JP6854888B2 (ja) ビデオ符号化方法、コンピュータ装置および記憶媒体
CN105264892B (zh) 针对高帧率和可变帧率捕获来调整视频压缩
WO2019242491A1 (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108769681B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
Zhang et al. Video super-resolution and caching—An edge-assisted adaptive video streaming solution
WO2019001108A1 (zh) 视频处理的方法和装置
CN109788316B (zh) 码率控制、视频转码方法与装置、计算机设备及存储介质
US10819994B2 (en) Image encoding and decoding methods and devices thereof
CN103493481A (zh) 基于场景的适应性比特率控制
CN109672897B (zh) 全景视频编码方法及装置
CN112954398B (zh) 编码方法、解码方法、装置、存储介质及电子设备
US11601617B2 (en) Method for forming an output image sequence from an input image sequence, method for reconstructing an input image sequence from an output image sequence, associated devices, server equipment, client equipment and computer programs
CN113965751B (zh) 屏幕内容编码方法、装置、设备及存储介质
CN113810763A (zh) 一种视频处理方法、设备及存储介质
AU2018250308B2 (en) Video compression using down-sampling patterns in two phases
Li et al. A super-resolution flexible video coding solution for improving live streaming quality
WO2021092821A1 (en) Adaptively encoding video frames using content and network analysis
Luo et al. Masked360: Enabling Robust 360-degree Video Streaming with Ultra Low Bandwidth Consumption
CN111464812B (zh) 编码解码的方法、系统、装置、存储介质及处理器
CN113747242B (zh) 图像处理方法、装置、电子设备及存储介质
JP2024517915A (ja) データ処理方法、装置、コンピュータ機器及びコンピュータプログラム
CN116708793B (zh) 视频的传输方法、装置、设备及存储介质
WO2023030070A1 (zh) 编码、封装及显示方法、装置及电子设备
CN114125442B (zh) 屏幕视频编码模式确定方法、编码方法、装置和计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant