CN104641638A - 使用虚拟帧内帧对视频内容进行编码的系统和方法 - Google Patents

使用虚拟帧内帧对视频内容进行编码的系统和方法 Download PDF

Info

Publication number
CN104641638A
CN104641638A CN201380043124.1A CN201380043124A CN104641638A CN 104641638 A CN104641638 A CN 104641638A CN 201380043124 A CN201380043124 A CN 201380043124A CN 104641638 A CN104641638 A CN 104641638A
Authority
CN
China
Prior art keywords
frame
video content
bit rate
data
compressed video
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
CN201380043124.1A
Other languages
English (en)
Other versions
CN104641638B (zh
Inventor
S.伦德伯格
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.)
Axis AB
Original Assignee
Axis AB
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 Axis AB filed Critical Axis AB
Priority to CN201810748424.4A priority Critical patent/CN108965883B/zh
Publication of CN104641638A publication Critical patent/CN104641638A/zh
Application granted granted Critical
Publication of CN104641638B publication Critical patent/CN104641638B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • 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/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving 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/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/164Feedback from the receiver or from the transmission channel
    • 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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

提供了用于使用一个或多个虚拟帧内帧对经编码的原始图像内容进行编码的系统和方法。在示例性方法中,可以对视频内容流进行编码以生成包括帧内帧和多个对应的帧间帧的压缩视频数据。所述压缩视频数据可被存储在缓冲器中,并且当缓冲器中的数据的量超过阈值时,基于经解码的帧间帧数据来计算虚拟帧内帧。可以输出所述虚拟帧内帧以存储在缓冲器中。

Description

使用虚拟帧内帧对视频内容进行编码的系统和方法
技术领域
本公开一般涉及用于对图像数据进行编码并生成压缩视频内容的系统和方法。更具体地且非限制性地,本公开涉及生成虚拟帧内帧以允许压缩视频内容在网络上的缓冲和交付。
背景技术
现今,视频系统包含能够使用TCP/IP协议传输图像数据的数字网络相机。这些视频系统正在取代基于模拟闭路电视(CCTV)的传统监控系统。例如,并且相对于模拟CCTV相机,具有数字网络相机的视频系统对原始图像数据进行实时捕捉和编码,以生成高分辨率压缩视频内容来连续地或离散地传送给任意数量的接收器或存储设备。
可以将压缩的高分辨率视频内容连续地或替代地传送给指定接收器以便实时观看,或者传送给存储设备以便存档。例如,网络相机可以响应于一个或多个离散触发事件或偶发事件来传送图像数据。为了获得压缩视频内容的高效比特率编码,网络相机可以包括采用差分编码方案的视频编解码器。这些编码方案可以要求帧内刷新帧之间的大的距离。用这样的编码方案生成的压缩视频内容可以具有在跨越网络传送的期间消耗最小网络资源的长的图片组(GOP)长度。
此外,并且相对于模拟CCTV相机,网络相机还可以缓冲一部分压缩视频内容,从而使这些网络相机能够分发包括感兴趣的事件或偶发事件的压缩视频内容。然而,由于帧内刷新帧之间的大距离,长GOP长度码在压缩视频数据中的使用增加存储经编码的数据的完整序列所需的存储器的量。因此,网络相机的有限的缓冲器的容量限制了这些相机缓冲压缩视频内容的有意义的部分的能力。
鉴于上文,需要改进的系统和方法用于对图像数据进行编码并生成压缩视频内容。而且,需要改进的系统和方法来生成虚拟帧内帧以允许压缩视频内容在网络上的缓冲和交付。还需要这样的系统和方法:其支持对视频数据进行高效的、大GOP长度编码,并且用具有有限的缓冲存储器的网络相机来缓冲经编码的帧数据。还需要可以在基于计算机的环境中实现的这样的系统和方法。
发明内容
与本公开的实施例一致,提供用于对图像数据进行编码并且生成压缩视频内容的计算机实现的系统和方法。在一个示例性实施例中,提供一种方法:接收视频内容的流;使用视频编解码器对视频内容流进行编码,以生成包括帧内帧和多个对应的帧间帧的压缩视频数据;以及,在缓冲器内存储压缩的视频数据。与所述示例性方法一致,编码可以包括:获得与经编码的帧内帧相关联的数据;以及,基于所述帧内帧数据,对视频内容流的一部分进行编码,以生成对应的一个帧间帧。此外,所述方法可以包括确定存储在缓冲器中的数据的量是否超过第一阈值。当缓冲器中的数据的量超过第一阈值时,所述方法可以包括:对所生成的帧间帧进行解码;基于经解码的帧间帧数据来计算虚拟帧内帧;以及,输出虚拟帧内帧和对应的帧间帧,以便存储在缓冲器中。
在实施例中,可以对视频内容流的第一部分进行编码以生成帧内帧。在这样的实施例中,第一部分可以在与帧间帧相关联的视频内容流的部分之前。
在另一实施例中,当缓冲数据的量未能超过第一阈值时,编码步骤可以包括计算与压缩的视频数据相关联的图片组长度。编码步骤还可以包括确定所计算的图片组长度是否超过预定阈长度,并且当所计算的图片组长度不超过预定阈长度时,可以对视频内容流的另外的部分进行编码以生成另外的帧间帧。在这样的实施例中,缓冲器可以包括帧内帧和对应的帧间帧的一个或多个先前编码的组,并且当所计算的图片组长度超过预定阈长度时,所述示例性方法可以丢弃帧内帧和对应的帧间帧的先前编码的组。
在另外的实施例中,编码步骤还可以包括确定缓冲数据的量是否超过比第一阈值更大的第二阈值。在这样的实施例中,当缓冲数据的量超过第二阈值时,可以保持虚拟帧内帧并且丢弃虚拟帧内帧之前的经编码的视频内容。
在另外的实施例中,可以接收指示触发偶发事件的信息,并且所述示例性方法可以基于所接收的信息来生成向接收器传送缓冲数据的至少一部分的指令。在这样的实施例中,触发偶发事件可以包括请求视频内容、在所接收的视频流内发生预定事件、通过接口接收到预定数据或者由传感器检测到预定事件中的至少一种。
此外,生成指令的步骤还可以包括确定缓冲数据是否包括帧内帧和虚拟帧内帧。在这样的实施例中,当缓冲数据包括帧内帧和虚拟帧内帧时,可以丢弃虚拟帧内帧并且保持对应的帧间帧,然后可以基于帧内帧来生成缓冲数据部分。在另外的实施例中,所述示例性方法可以确定缓冲数据是否是包括虚拟帧内帧并且未能包括帧内帧,并且当缓冲数据包括虚拟帧内帧并且未能包括帧内帧时,则可以基于虚拟帧内帧来生成缓冲数据部分。
在又一实施例中,所述示例性方法还可以包括:接收并解码压缩视频数据的至少一个帧;确定经解码的帧是否对应于帧内帧;以及,当经解码的帧对应于帧内帧时,至少将经解码的帧存储在数据仓库中。在这样的实施例中,所述方法可以确定经解码的帧对应于帧间帧,并且当经解码的帧是帧间帧时,计算与所接收的数据相关联的图片组长度。所述示例性方法可以确定所计算的图片组长度是否超过预定阈长度,当所计算的图片组长度未能超过预定阈长度时,所述示例性方法可以至少将经解码的帧间帧存储在数据仓库内。
此外,在这样的实施例中,当所计算的图片组长度超过预定阈长度时,所述方法可以基于经解码的帧间帧数据来生成另外的帧内帧,然后可以至少将另外的帧内帧存储在数据仓库内。
在另外的实施例中,压缩视频内容可以与比特率的对应值相关联,可以在压缩视频内容内的对应时间位置处建立至少一个切换点。在这样的实施例中,所述切换点可以使压缩视频内容的接收器或分发器中的至少一个能够修改比特率。
在这样的实施例中,所述示例性方法可以生成将压缩视频数据和与切换点相关联的信息存储在数据仓库中的指令。此外,在建立切换点时,所述示例性方法可以识别与对应时间位置相关联的帧间帧,对所识别的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧,然后输出虚拟帧内帧以便按照所述时间位置存储在数据仓库中。
在另外的实施例中,编码步骤还可以包括在压缩视频内容中的对应时间位置处建立多个切换点。在实施例中,可以在压缩视频内容内以固定间隔安排所述对应时间位置。
在另外的实施例中,所述示例性方法可以接收创建切换位置的请求,所述请求包括识别压缩视频内容内的时间位置的信息,并且响应于所述请求,编码步骤还可以包括在所识别的时间位置处建立切换点。
与本公开的另外的实施例一致,提供了一种装置,其包括:视频编解码器单元,被配置为对视频内容的流进行编码,以生成包括帧内帧和多个对应的帧间帧的压缩视频数据。所述装置还包括:存储设备,耦合到视频编解码器单元,并且被配置为在缓冲器内存储压缩视频数据。所述视频编解码器还可以被配置为:获得与经编码的帧内帧相关联的数据;基于帧内帧数据,对视频内容流的一部分进行编码以生成对应的一个帧间帧;以及,确定存储在缓冲器中的数据的量是否超过第一阈值。当缓冲数据的量超过第一阈值时,所述视频编解码器可以对所生成的帧间帧进行解码,基于经解码的帧间帧数据来计算虚拟帧内帧,并且提供虚拟帧内帧和对应的帧间帧作为输出,以便存储在缓冲器中。
在实施例中,视频编解码器还可以被配置为对视频内容流的第一部分进行编码以生成帧内帧。在这样的实施例中,所述第一部分可以在与帧间帧相关联的视频内容流的部分之前。
在另一实施例中,当缓冲数据的量未能超过第一阈值时,视频编解码器可以被配置为计算与压缩视频数据相关联的图片组长度。视频编解码器还可以被配置为确定所计算的图片组长度是否超过预定阈长度,并且当所计算的图片组长度未能超过预定阈长度时,视频编解码器还可以被配置为对视频内容流的另外的部分进行编码以生成另外的帧间帧。在这样的实施例中,缓冲器可以包括帧内帧和对应的帧间帧的一个或多个先前编码的组,并且当所计算的图片组长度超过预定阈长度时,视频编解码器还可以被配置为丢弃帧内帧和对应的帧间帧的先前编码的组。
在另外的实施例中,视频编解码器可以被配置为确定缓冲数据的量是否超过比第一阈值更大的第二阈值。在这样的实施例中,当缓冲数据的数量超过第二阈值时,视频编解码器还可以被配置为保持虚拟帧内帧并且丢弃在虚拟帧内帧之前的经编码的视频内容。
在另一实施例中,视频编解码器可以被配置为接收指示触发偶发事件的信息,并且基于所接收的信息来生成向接收器传送缓冲数据的至少一部分的指令。在这样的实施例中,视频编解码器可以被配置为:确定缓冲数据是否包括帧内帧和虚拟帧内帧;当缓冲数据包括帧内帧和虚拟帧内帧时,丢弃虚拟帧内帧并且保持对应的帧间帧;以及,基于所述帧内帧来生成缓冲数据部分。在另外的实施例中,视频编解码器可以被配置为确定缓冲数据是否是包括虚拟帧内帧并且未能包括帧内帧,并且当缓冲数据包括虚拟帧内帧并且未能包括帧内帧时,基于所述虚拟帧内帧来生成缓冲数据部分。
在又一实施例中,视频编解码器可以被配置为:接收并解码压缩视频数据的至少一个帧;确定经解码的帧是否对应于帧内帧;以及,当经解码的帧对应于帧内帧时,生成至少将经解码的帧存储在存储设备中的指令。在这样的实施例中,视频编解码器还可以被配置为:确定经解码的帧是否对应于帧间帧;以及,当经解码的帧是帧间帧时,计算与所接收数据相关联的图片组长度。视频编解码器然后可以被配置为:确定所计算的图片组长度是否超过预定阈长度;以及,当所计算的图片组长度未能超过预定阈长度时,生成至少将经解码的帧间帧存储在存储设备内的指令。
此外,在这样的实施例中,视频编解码器可以被配置为当所计算的图片组长度超过预定阈长度时,基于经解码的帧间帧数据来生成另外的帧内帧,然后生成至少将另外的帧内帧存储在存储设备内的指令。
在另外的实施例中,压缩视频内容可以与比特率的对应的值相关联,并且视频编解码器可以被配置为在压缩视频内容内的对应时间位置处建立至少一个切换点。在这样的实施例中,所述切换点可以使压缩视频内容的接收器或分发器中的至少一个能够修改比特率。
在这样的实施例中,视频编解码器可以被配置为生成将与切换位置相关联的压缩视频数据和信息存储在存储设备中的指令。视频编解码器还可以被配置为:识别与对应时间位置相关联的帧间帧;对所识别的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及,输出虚拟帧内帧以便按照所述时间位置存储在存储设备中。
在另外的实施例中,视频编解码器可以被配置为在压缩视频内容内的对应时间位置处建立多个切换点。在这样的实施例中,可以在压缩视频内容内以固定间隔来安排所述对应时间位置。此外,在实施例中,视频编解码器可以被配置为:接收创建切换位置的请求,所述请求包含识别压缩视频内容内的时间位置的信息;以及,响应于所述请求,在所识别的时间位置处建立切换点。
与本公开另外的实施例一致,一种存储指令的有形的非临时性的计算机可读介质,所述指令当由至少一个处理器执行时使所述至少一个处理器执行以下步骤:接收视频内容的流;对视频内容的流进行编码以生成包括帧内帧和多个对应的帧间帧的压缩视频数据;以及,在缓冲器内存储压缩视频数据。指令集还可以使所述至少一个处理器获得与编码的帧内帧相关联的数据,并且基于帧内帧数据对视频内容流的一部分进行编码,以生成对应的一个帧间帧。另外,指令集可以使所述至少一个处理器确定存储在缓冲器中的数据的量是否超过第一阈值。当缓冲器中的数据的量超过第一阈值时,指令集可以使所述至少一个处理器对所生成的帧间帧进行解码,基于经解码的帧间帧数据来计算虚拟帧内帧,并且输出虚拟帧内帧和对应的帧间帧,以便存储在缓冲器中。
与本公开的另一实施例一致,计算机实现的方法接收指示与通信网络相关联的网络状况的信息,并且基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致。当初始比特率与网络状况不一致时,识别出与压缩视频内容的初始比特率相关联的切换点。切换点可以与压缩视频内容内的对应时间位置相关联。使用视频编解码器来生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的一部分的指令。所述部分可以包括以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
在实施例中,当初始比特率与网络状况一致时,所述示例性方法可以生成以初始比特率来传送压缩视频内容的指令。此外,当初始比特率与网络状况不一致时,所述示例性方法可以以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,修改的比特率可以与在切换点的时间位置处的网络状况一致。
在另外的实施例中,所述示例性方法可以在初始比特率与网络状况不一致时,确定与网络状况相关联的比特率超过初始比特率,并且可以进一步地以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,修改的比特率可以超过在切换点的时间位置处的初始比特率。
在另一实施例中,当初始比特率与网络状况不一致时,所述示例性方法可以确定初始比特率超过与网络状况相关联的比特率,然后可以以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,初始比特率可以超过在切换点的时间位置处的修改的比特率。
在另外的实施例中,所述方法可以包括:接收识别初始比特率的信息的压缩视频内容的请求;以及,响应于所述请求,生成以初始比特率传送压缩视频内容的指令。在这样的实施例中,所述方法可以生成传送与压缩视频内容相关联的回放信息的指令。所述回放信息可以包括识别压缩视频内容内的切换点的时间位置的信息。
与本公开的另一实施例一致,提供了一种装置,其包括存储设备和耦合到存储设备的视频编解码器。所述视频编解码器可以被配置为接收指示与通信网络相关联的网络状况的信息,并且基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致。当初始比特率与网络状况不一致时,所述视频编解码器还被配置为识别与压缩视频内容的初始比特率相关联的切换点。所述切换点可以与压缩视频内容内的对应时间位置相关联。所述视频编解码器还被配置为生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的一部分的指令。所述部分可以包括以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
在实施例中,当初始比特率与网络状况一致时,视频编解码器还可以被配置为生成以初始比特率来传送压缩视频内容的指令。所述视频编解码器还可以被配置为在初始比特率与网络状况不一致时以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,修改的比特率可以与在切换点的时间位置处的网络状况一致。
在另外的实施例中,视频编解码器可以被配置为当初始比特率与网络状况不一致时,确定与网络状况相关联的比特率超过初始比特率,然后以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,修改的比特率可以超过在切换点的时间位置处的初始比特率。
在另一实施例中,当初始比特率与网络状况不一致时,视频编解码器可以被配置为确定初始比特率超过与网络状况相关联的比特率,并且以修改的比特率来获得压缩视频内容的部分。在这样的实施例中,初始比特率可以超过在切换点的时间位置处的修改的比特率。
在另外的实施例中,视频编解码器可以被配置为接收对包括识别初始比特率的信息的压缩视频内容的请求,并且响应于所述请求,生成以初始比特率来传送压缩视频内容的指令。所述视频编解码器还可以被配置为生成传送与压缩视频内容相关联的回放信息的指令。在这样的实施例中,所述回放信息可以包括识别压缩视频内容内的切换点的时间位置的信息。
本公开的其他实施例涉及一种存储指令的有形的非临时性计算机可读介质,所述指令当由至少一个处理器执行时使所述至少一个处理器执行以下步骤:接收指示与通信网络相关联的网络状况的信息;以及,基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致。当初始比特率与网络状况不一致时,识别出与压缩视频内容的初始比特率相关联的切换点。所述切换点可以与压缩视频内容内的对应时间位置相关联。生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的一部分的指令。所述部分可以包括以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
本公开的另外的实施例涉及一种计算机实现的接收包含压缩视频数据的至少一个帧的视频内容的流的方法。所述方法对所接收的帧进行解码,并且确定经解码的帧是否对应于帧间帧。当经解码的帧是帧间帧时,所述方法计算与所接收的数据相关联的图片组长度,并且确定所计算的图片组长度是否超过预定阈长度。当所计算的图片组长度超过预定阈长度时,视频编解码器基于经解码的帧间帧数据来生成另外的帧内帧。至少将所述另外的帧内帧存储在数据仓库内。
在实施例中,所述示例性方法可以在经解码的帧对应于帧内帧时,至少将经解码的帧存储在数据仓库中。当所计算的图片组长度未能超过预定阈长度时,所述示例性方法还可以至少将经解码的帧间帧存储在数据仓库内。
要理解的是,以上的一般描述和下面的详细描述都只是示例性和解释性的,而不是对所要求保护的本发明的限制。
附图说明
被并入且构成本说明书的一部分的附图与说明书例示本公开的实施例,并且与描述一起用于解释在所附的权利要求书中所阐述的本发明的原理。
图1是可以实施与本公开一致的实施例的示例性计算环境的图。
图2是与所公开的实施例一致的示例性片上视频编解码器的图。
图3例示与所公开的实施例一致的一组示例性的视频内容的经编码的帧。
图4是与所公开的实施例一致的生成并缓冲压缩视频内容的示例性方法的流程图。
图5A至5C例示与所公开的实施例一致的包括虚拟帧内帧的示例性的缓冲的帧序列。
图6是与所公开的实施例一致的用于响应于触发偶发事件来传送缓冲的视频内容的示例性方法的流程图。
图7是与所公开的实施例一致的用于修改经编码的视频内容的图片组(GOP)长度的示例性方法的流程图。
图8例示与所公开的实施例一致的用于存储经编码的视频内容的多个信道的示例性数据结构。
图9是与所公开的实施例一致的用于自适应地修改所传送的视频内容的比特率的示例性方法的流程图。
图10A至10B和11A至11B例示与所公开的实施例一致的对经解码的视频内容的传输比特率的示例性调整。
图12例示可以在其中实施所公开实施例的示例性计算机系统。
具体实施方式
现在将详细地参考本公开的实施例,以附图例示其示例。在所有图中将使用相同的标号来标示相同和类似的部分。
在本申请中,除非特别陈述,单数的使用包括复数。在本申请中,除非特别陈述,“或者”的使用意味着“和/或”。此外,术语“包括”以及诸如“包含”和“被包括”这样的其他形式的使用不是限制性的。另外,除非特别陈述,诸如“元件”或“组件”这样的术语既包括包含一个单元的元件和组件,也包括包含一个以上的子单元的元件和组件。另外,在本文中所使用的各部分的标题仅用于组织的目的,而不应被解释为对所描述的主题的限制。
图1例示可以在其中实施与本公开一致的实施例的示例性计算环境100。如图1所示,环境100可以通过基于IP的或者允许对视频内容进行捕捉和编码并且随后将其存储在与通信网络130通信的不同位置处的网络视频监视系统来实现。图1中所提供的组件的数量和布置是用于例示的目的,根据本公开,对于本领域技术人员显而易见的是,可以根据对环境100的预期的需求或目标来增加或减少组件的数量和/或对组件的布置进行修改。
在图1的示例性实施例中,环境100包括经由通信网络130互连的多个数字网络相机102和104、多个客户设备112和114、视频编码器单元116以及视频管理系统120。此外,如图1所示,可以安排一个或多个模拟相机116A(例如,闭路电视(CCTV)相机)经由连接150与一个或多个视频编码器单元116进行通信。在这样的实施例中,连接150可以对应于任何有线或无线连接,包括对本领域技术人员显而易见并且能够携带去往和来自模拟相机116A和视频编码器单元116的那些连接。
在图1中,数字网络相机102和104可以被配置为连续地捕捉原始图像数据,可以接近实时地对原始图像数据进行编码以生成压缩视频内容。类似地,模拟相机116A可以被配置为连续地捕捉原始图像数据,可以跨越连接150将原始图像数据传输给视频编码器单元116,以便随后进行编码。在这样的实施例中,由网络相机102和104以及视频编码器单元116执行的编码可以生成适于跨越网络130以指定的间隔连续地传送或响应于预定的触发偶发事件进行传送的压缩视频内容。
在实施例中,可以根据差分编码方案对通过视频编码单元116以及网络相机102和104获得的原始图像数据进行编码,以生成图片组(GOP),其分别包括帧内帧(即I帧)和对应的帧间帧(即P帧)的顺序集。例如,可以根据用于高清晰度视频的H.264标准、用于高效率视频编码的H.265标准或者对本领域技术人员显而易见的任何另外的或替代的差分编码标准对原始图像数据进行编码。
此外,在与本公开一致的实施例中,视频编码单元116以及网络相机102和104可以被配置为以多个比特率对原始图像数据进行编码以便随后的跨越网络130的传送。例如,选择用于对原始图像数据进行编码的比特率可以取决于网络130的状况(例如,网络130的带宽)、压缩图像数据接收器的状况(例如,客户设备102或视频管理系统120)或者对本领域技术人员显而易见的并适合于视频编码单元116以及网络相机102和104的任何另外的或替代的状况。
再次参照图1,可以用至少一个处理器或基于计算机的系统来实现客户设备112和114。例如,客户设备112和114可以包括但不限于个人计算机、膝上型计算机、笔记本计算机、手持计算机、个人数字助理、便携式导航设备、移动电话、智能电话、机顶盒、第三方门户、带有专用显示设备的视频解码器盒或软件狗、以及对于跨越网络130传送和接收数据可行的任何另外的或替代的计算设备。
可以通过有线和/或无线网络的任何组合来实现通信网络130,以便提供数字数据通信。通信网络120的示例包括局域网(“LAN”)、例如“WiFi”网络的无线LAN、连接多个无线LAN的无线城域网(MAN)、以及广域网(“WAN”)。在某些实施例中,通信网络130包含因特网。例如,与本公开的实施例一致,网络130可以包含因特网,并且包括任何可以公开访问的网络或经由包括但不限于超文本传输协议(HTTP)、传输控制协议/因特网协议(TCP/IP)以及实时传输协议(RTP/RTCP)的一种或多种通信协议互连的网络。而且,通信网络130还可以包括允许客户设备112和114、网络相机102和104、以及视频管理系统120经由包括上述协议的可用的通信协议来发送和接收数据的诸如GSM网络或PCS网络等一个或多个移动设备网络。
视频管理系统120可以包括视频管理服务器122和数据仓库124。例如,视频管理服务器122可以包括前端和被安排为与前端进行通信的后端。在这样的实施例中,服务器122的前端和后端可以合并到硬件单元(例如单个计算机、单个服务器或者对本领域技术人员显而易见的任何另外的或替代的计算设备)中。此外,在实施例中,前端可以是在服务器122上执行的诸如网站服务这样的软件应用,其使客户设备(例如,客户设备112和114)的用户能够访问、管理和观看存储在数据仓库124内的压缩视频内容。
数据仓库124可以存储由视频编码单元116以及网络相机102和104以一个或多个比特率进行了编码的压缩视频内容。例如,如上所述,视频编码单元116以及网络相机102和104中的一个或多个可以跨越网络130以指定的间隔连续地或者响应于触发偶发事件地将压缩视频内容传送给数据仓库124以便进行存储记录。
如上所述,网络相机102和104以及视频编解码器单元116可以包含一个或多个视频编解码器,其与对应的处理器和存储单元进行通信以获得原始图像数据,对原始图像数据进行编码以生成压缩视频内容,并且随后在存储单元内缓冲压缩视频数据的一部分。在这样的实施例中,编解码器和处理器可以合并到包括传感器接口单元、视频编解码器单元和处理单元的片上装置中,所述处理单元包括控制传感器接口和视频编解码器单元以及跨越网络130与客户设备112和114及视频管理系统120对接的逻辑,例如如以下参照图2所描述的那样。
图2例示根据所公开的实施例的对原始图像数据进行编码以生成压缩视频内容的示例性片上视频编解码器200。作为示例,视频编解码器200可以合并到网络相机102和104以及视频编码单元116中的一个或多个中,以便对原始图像数据连续地进行编码以生成压缩视频内容。
在图2的示例性实施例中,视频编解码器200包括传感器单元220、编解码器单元240和处理单元260。此外,图2的存储器接口290可以将传感器单元220、编解码器单元240和处理单元260耦合到外部存储单元280。在这样的实施例中,传感器单元220可以接收原始图像数据并将其处理为适于由编解码器单元240进行编码的格式。编解码器单元240可以对经格式化的原始图像数据进行编码以生成压缩视频数据,可以在存储设备280内缓冲其一部分。此外,在这样的实施例中,响应于由处理单元260生成指令,可以跨越通信网络(例如,网络130)来传送压缩视频内容,以便进行观看和/或存储。
此外,虽然未在图2中图示,但是可以将由图像传感器捕捉的原始图像数据合并到网络相机102和104中。与所公开实施例一致的图像传感器包括(但不限于)数字电荷耦合器件(CCD)图像传感器和互补金属氧化物半导体(CMOS)图像传感器。另外,由视频编码单元116获得的原始图像数据可以由使用适当的图像传感器的一个或多个模拟相机(例如,模拟相机116A)来捕捉,并且随后可以使用连接150提供给视频编码单元116。
再参照图2,传感器单元220包括:传感器输入接口222,接收来自图像传感器的图像数据的;贝尔图案处理器224,将色彩滤波器应用于原始图像数据;以及格式转换器226,转换经滤波的图像数据的格式。传感器单元220不限于这样的示例性配置,并且在另外的实施例中,传感器单元220可以被配置为执行一个或多个另外的图像处理算法(包括但不限于坏像素隐藏算法、噪声滤波算法、图像锐化算法、白平衡算法、曝光算法和图像自动聚焦算法)。传感器单元还包括直接存储器存取(DMA)控制器228,DMA控制器228使传感器单元220能够通过接口290直接访问存储单元280,以及能够通过接口290向编解码器单元240提供经滤波的图像数据。
编解码器单元240包括视频定标器(video scaler)242,视频定标器242可以使用对应的直接存储器存取(DMA)控制器228通过接口290从传感器单元220接收经滤波的图像数据。一旦被视频定标器242处理,就可以将经放缩的图像数据转发给编码器244或编码器246中的一个或多个。例如,编码器244可以压缩经放缩的图像数据以生成对应的JPEG压缩图像,可以通过DMA控制器248将其转发给存储单元280,或者替代地,转发给处理单元260,以便随后跨越网络130的传送。
另外或替代地,编码器246可以根据用于高清晰度视频的H.246标准对经放缩的图像数据进行差分编码,以生成压缩视频数据的对应的帧。例如,生成的帧可以形成一组具有对应的图片组(GOP)长度的经差分编码的帧的一部分。在这样的实施例中,DMA控制器248可以将压缩视频数据转发给存储单元280以便进行缓冲,另外或替代地,转发给处理单元260以便跨越网络130进行传送。
处理单元260包括中央处理单元(CPU)262、对应的高速缓存264、使用以上概述的一种或多种通信协议连接到网络130的网络接口266。处理单元还包括:听觉接口268,从麦克风接受输入或者向扬声器提供输出;接口270,接受安全数字(SD)卡;以及通用接口272,用于与一个或多个外围设备(例如,诸如键盘或触摸屏等输入/输出设备以及诸如硬盘或闪速驱动器等外部存储设备)进行通信。
在实施例中,处理单元260可生成信号以在使用对应的接口的可本地访问的存储设备(例如,使用SD卡接口270的SD卡或使用通用接口272的闪速设备)内存储压缩视频内容。在另外的实施例中,处理单元260还可生成信号以将由编解码器单元240生成的压缩视频内容连续地传送给对应的接收器以便观看或存储,或者替代地,将压缩视频内容传送给对应的接收器以便在预定时间观看或存储。然而,所公开的实施例不限于这样的用于本地存储和传送的机制,并且在另外的实施例中,处理单元260可从网络接口266、听觉接口268、SD卡接口270或通用I/O接口272中的一个或多个接收识别触发压缩视频内容的传输的偶发事件的信号。
例如,这样的触发偶发事件包括但不限于来自客户设备的用户的请求、从传感器单元(例如,运动传感器、红外传感器、热传感器以及继电器或门触点传感器)接收的信号、从与听觉接口进行通信的麦克风接收的信号、由另外的连网设备(例如,另外的网络相机)生成并通过通信网络(例如,网络130)传送给处理单元260的信号或警报、或者对本领域技术人员显而易见的任何另外的或替代的事件。在这样的实施例中,客户设备(例如,客户设备112或104)的用户可以向网络相机102和104中的一个或多个提供指定一个或多个触发偶发事件以及接收压缩数据的一个或多个对应的目的地的配置信息。
此外,如上所述,DMA控制器248可以将压缩视频内容传送给可以用作临时存储压缩视频内容的缓冲器的存储设备280。当识别出触发事件时,处理单元260还可生成将缓冲视频内容跨越网络130传送给指定的接收器或场所以便进行观看或存储的指令。在这样的实施例中,视频编解码器200不仅可以便于在触发偶发事件之后交付对应于原始图像数据的压缩视频内容,还可以便于在触发偶发事件之前交付在预定时间段内捕捉的压缩视频数据的缓冲部分。
如上所述,网络相机102和104的片上编解码器系统根据一种或多种差分编码方案对原始图像数据进行编码,其中包括但不限于与用于高清晰度视频的H.264标准和用于高效率视频编码的H.265标准一致的方案。使用这样的差分编码方案,原始图像数据被编码成具有对应的图片组(GOP)长度并且包括初始帧内帧(即I帧)和基于I帧预测的多个帧间帧(即P帧)的帧的组,例如,如以下参照图3所描述的那样。
图3例示根据本公开的实施例的经差分编码的帧的示例组300。例如,组300可以由合并在网络相机(例如,网络相机102和104)或与模拟相机进行通信的视频编码单元(例如,视频编码单元116)中的至少一个之内的视频编解码器(例如,片上视频编解码器200)生成,组300可以基于由网络相机和/或模拟相机的图像传感器捕捉的原始图像数据。
在图3的示例性实施例中,可以对原始图像数据的初始部分进行编码以形成对应的I帧302(例如,I帧I1)。在这样的实施例中,I帧302表示当由视频编解码器200进行解码时产生对应于原始图像数据的初始部分的图像的自包含图像。
可以对原始图像数据的随后的部分进行差分编码以产生对应的取决于I帧302和序列中的前面的每个P帧的P帧304的序列(例如,P帧P2P3P4……PN-1PN)。例如,如图3所示,P帧P2表示原始数据的第二部分与初始部分之间的差异,并且对应于原始数据第二部分的图像可以基于经解码的I帧302和经解码的P帧P2来生成。类似地,对应于P帧P7的图像可以通过顺序地对I帧302以及P2至P7中的每一个进行解码来生成。
在图3的实施例中,由视频编解码器装置200生成的P帧与单个参考图像相关联。然而,所公开的实施例不限于这样的示例性差分编码方案,并且在另外的实施例中,视频编解码器装置200可以生成与多个参考图像相关联的另外的P帧,其不脱离所公开实施例的精神或范围。
此外,在上述实施例中,差分编码方案使视频编解码器装置200能够生成参考先前编码的图像数据(即,更早的参考帧)的P帧。在另外的实施例中,视频编解码器200还可以生成一个或多个参考先前编码的图像数据(即一个或多个更早的参考帧)和随后编码的图像数据(即一个或多个随后的参考帧)这两者的双向预测帧(即B帧)。例如,视频编解码器200可以生成这样的B帧并将其布置在对应的P帧之间,以增加等待时间并减少将来用于传送经编码的视频内容的带宽需求。
再参照图3,与经编码的I帧相关联的大小可以显著地大于与对应的经编码的P帧相关联的大小。例如,I帧302的大小可以是50千字节,而P帧304中的每一个的大小的范围可以从1千字节到4千字节,其取决于与原始图像数据相关联的噪声水平。在这样的实施例中,可以调整与压缩视频内容相关联的图片组(GOP)长度以增加取决于序列300中的初始I帧302的P帧304的数量,从而减少跨越通信网络(例如,图1的网络130)传送序列300所需的比特率。例如,传送GOP长度为128的序列所需的比特率可能比传送GOP长度为32的可比较的序列所需的比特率小2倍到4倍。
如上所述,视频编解码器200可以跨越网络130将压缩视频内容传送给接收设备以便实时观看或存储,同时在本地存储单元(例如,存储单元280)中同时地缓冲压缩视频内容的一部分。在这样的实施例中,视频编解码器200可生成具有相对长的GOP长度(例如,128帧或更长)的压缩视频内容以便降低跨越通信网络130传送压缩视频内容所需的比特率。然而,由于通常合并在基于IP的视频监视系统的组件内的缓冲器的有限的容量(例如,300千字节的容量),使用这种长GOP长度的码可能会限制视频编解码器200缓冲压缩视频内容的整个GOP的能力。
例如,再参照图3,视频编解码器装置200可以生成GOP长度为128帧的压缩视频内容。在这样的实施例中,I帧302在存储上可能需要50千字节,而对应的P帧304中的每一个在大小上可能需要1千字节到4千字节。在这样的情况下,压缩视频内容的整个GOP可能需要177千字节(在无噪声的帧数据的情况下)到588千字节(在有噪声的帧数据的情况下)的存储容量。在这样的实施例中,由于GOP的初始I帧可能被随后的P帧盖写,视频编解码器200可能不能在300千字节的缓冲器内缓冲压缩视频内容的完整GOP,并且缓冲内容的接收器可能不能对缓冲内容进行解码以生成对应的图像。
图4例示根据本公开的实施例的生成并缓冲压缩视频内容的示例性方法400。方法400可以由视频编解码器(例如,片上编解码器200)来实现以生成具有长GOP长度码的压缩视频内容,并且随后在具有有限缓冲器容量的存储单元内缓冲压缩视频内容。根据本公开,对本领域技术人员显而易见的是,可以根据需要修改图4中的步骤及其排列。而且,以下参照方法400描述的阈值(例如,50%和90%)是用于例示的目的,可以在需要时进行修改。
图4中,视频编解码器200在步骤402中接收视频内容的流。在实施例中,如以上参照图2的示例性实施例所描述的那样,可以由与连网相机(例如,CCD设备或CMOS设备)相关联的图像传感器捕捉视频内容,并且随后可以由传感器单元(例如,视频编解码器200的传感器单元220)进行滤波以生成经滤波的视频内容。
在步骤404中,视频编解码器200基于所接收的视频内容流的初始部分来生成帧内帧(即I帧),并且在步骤406中,视频编解码器200确定在对应缓冲器(例如,存储单元280的一部分)内是否存在多余容量。在实施例中,视频编解码器200在步骤404中通过根据差分编码方案(包括但不限于用于高清晰度视频的H.264标准和用于高效率视频编码的H.265标准)对原始图像数据进行编码来生成I帧。
如果视频编解码器200确定在缓冲器中不存在多余容量(即,缓冲器是满的),则在步骤408中生成错误信号,并且方法400在步骤410中完成。然而,如果视频编解码器200确定缓冲器未满,则缓冲经编码的I帧,并且由视频编解码器200对所接收的视频内容流的另外的部分进行编码以在步骤412中生成对应的帧间帧(即P帧)。在这样的实施例中,如以上参照图3所述的那样,所生成的P帧表示所接收的视频内容流的初始部分和另外的部分之间的差异。
例如,当在步骤412中生成P帧时,上述差分编码方案(例如,H.264标准或H.265标准的I帧编码方案)可以命令视频编解码器200对新编码的P帧进行解码以生成对应的参考帧。在这样的实施例中,如以下所述的那样,视频编解码器200可以利用参考帧来生成随后的P帧,并且另外或替代地,基于P帧来生成虚拟I帧。
在步骤414中,视频编解码器200再次确定在缓冲器中是否存在多余容量。如果视频编解码器200确定缓冲器是满的,则方法400转回至步骤408,此时生成错误信号,并且所述方法在步骤410中完成。
然而,如果视频编解码器200确定在缓冲器中存在多余容量,则视频编解码器200在图片组内的对应位置处缓冲所生成的P帧,并且然后在步骤416中确定缓冲数据的量是否超过缓冲器容量的阈部分,例如缓冲器容量的90%。在实施例中,90%(或其他)的阈向视频编解码器200指示缓冲器处于遭受溢出的迫近的危险中(即,随后的帧盖写先前缓冲的帧)。
如果缓冲数据量未能超过缓冲器容量的90%,则视频编解码器200在步骤418中确定缓冲数据量是否超过另外的阈部分,例如缓冲器容量的50%。如果缓冲数据量超过缓冲器容量的50%(或其他),则视频编解码器在步骤420中基于先前缓冲的P帧来生成虚拟I帧。
为了在步骤420中生成虚拟I帧,视频编解码器200可以首先识别存储在缓冲器内的压缩数据的序列中的最后的P帧。在实施例中,所识别的P帧对应于先前在步骤412中生成的P帧,视频编解码器200可以利用与所识别的P帧相关联的参考数据在步骤420中生成对应的虚拟I帧,可以将其与对应P帧数据一起存储在缓冲器中。
例如,为了生成虚拟I帧,视频编解码器200可以通过编码参数的修改的集合,使用对应的I帧算法(例如,H.264标准或H.265标准的I帧算法)对参考数据进行编码。在这样的实施例中,用于对虚拟I帧进行编码的参数(例如,质量参数)可以不同于用于对P帧或其他I帧进行编码的参数,并且修改的参数可以得到具有比与P帧和I帧相关联的量化级别更低或更高的量化级别的虚拟I帧。此外,在另外的实施例中,可以调整虚拟I帧的质量参数以减少和/或最小化与在步骤420中生成的虚拟I帧相关联的量化错误。
例如,图5A例示根据所公开的实施例的示例性的缓冲帧序列500。如上所述,视频编解码器200可以确定在存储最后的P帧504(例如,P帧P8)之后缓冲帧序列500超过缓冲器容量的50%。在这样的实施例中,视频编解码器200则可以通过使用对应的I帧算法(例如,H.264标准或H.265标准的I帧算法)对与P帧P8相关联的参考帧数据重新编码来生成对应于P帧P8的虚拟I帧506。如上所述,视频编解码器200可以自由地修改I帧算法的一个或多个参数(例如,质量参数)以减少与可能随后与对应的P帧P8和初始I帧I1一起存储在缓冲器中的所生成的虚拟I帧V8相关联的量化错误。
然而,所公开实施例不限于基于对应的参考数据来生成虚拟I帧的技术。在另外的实施例中,视频编解码器200可以通过对缓冲器序列的初始I帧502(例如,I帧I1)以及P2至P8的一串P帧进行解码来生成对应于P帧P8的原始图像数据的经解码的图像。如上所述,视频编解码器200然后可以通过使用对应的I帧算法对经解码的图像数据重新编码来生成虚拟I帧506。
再参照图4,在将所生成的虚拟I帧存储在缓冲器中之后,视频编解码器200可以在步骤422中执行对缓冲器的多余容量的另外的检查。如果在步骤422中视频编解码器200可以确定缓冲器是满的,则方法400转回至生成错误信号的步骤408,并且所述方法在步骤410中完成。
替代地,如果视频编解码器200确定在缓冲器中存在多余容量,则视频编解码器200可以在步骤422中计算当前缓冲的图片组(GOP)的长度,并且可以在步骤426中将所计算的长度与阈长度进行比较。在实施例中,阈长度可以表示与视频编解码器200相关联的GOP长度,并且可以对其进行调整以生成对于跨越通信网络(例如,图1的通信网络130)传送压缩视频内容可以接受的比特率。
如果视频编解码器200在步骤426中确定当前缓冲的GOP的长度超过阈长度,则当前缓冲的GOP表示经编码的帧的完整的组(即,视频编解码器200所定义的完整GOP)。然后,视频编解码器200可以在步骤428中(例如,使用处理单元260)生成保留当前缓冲的GOP并且从缓冲器中丢弃任何先前编码的GOP的指令。例如,如图5B中所图示的那样,在当前缓冲的GOP 510的长度超过视频编解码器200的GOP长度时,缓冲器包括完整的当前缓冲的GOP 510以及在前的完整GOP 508这两者。在这样的实施例中,在步骤428中丢弃完整的GOP 508和任何对应的虚拟I帧,而帧510留在缓冲器中。图4的示例性方法转回至步骤404,并且编解码器基于所接收的视频内容流来生成另外的I帧。
再参照步骤426,如果当前缓冲GOP的长度未能超过阈值长度,则缓冲器包括与经编码帧的不完整的组相关联的I帧。在这样的实施例中,方法400转回至步骤412,并且编解码器生成与先前缓冲的I帧相关联的另外的P帧。
再参照步骤418,如果视频编解码器200确定缓冲数据量未能超过缓冲器容量的50%,则视频编解码器200可以确定缓冲器没有溢出的危险。在这样的实施例中,方法400直接转至步骤424,并且如上所述,视频编解码器200计算与缓冲的帧相关联的GOP长度。
再参照步骤416,如果视频编解码器200确定缓冲数据数量超过缓冲器容量的90%,则缓冲器可能处于溢出的迫近的危险中。在这样的实施例中,视频编解码器200可以随后在步骤432中确定缓冲的帧是否包括虚拟I帧。如果缓冲的帧包括虚拟I帧,则视频编解码器200在步骤434中基于虚拟I帧来生成新的GOP。然后,例如如以下参照图5C所描述的那样,编解码器可以丢弃在虚拟I帧之前缓冲的帧以及对应于虚拟I帧的P帧。
例如,如图5C所示,视频编解码器200可以在步骤416中确定缓冲的帧560超过缓冲器容量的90%,并且进一步地,可以在步骤432中确定缓冲器包括虚拟I帧,即虚拟I帧V8。然后,视频编解码器200可以基于虚拟I帧V8来生成新的GOP 562,并且可以随后丢弃在V8之前缓冲的帧564,包括从中得到V8的P帧P8
再参照图4,当在步骤434中生成新的GOP时,方法400转回至步骤424,并且如上所述,视频编解码器200计算对应于新的GOP的GOP长度。类似地,如果视频编解码器200在步骤432中确定缓冲器未能包括虚拟I帧,则方法400也转回至步骤424,并且视频编解码器200计算与当前缓冲的帧相关联的GOP长度。
在上述实施例中,可以优化示例性方法400以使视频编解码器(例如,视频编解码器200)能够缓冲压缩视频内容的单个完整的GOP。所公开的实施例不限于这种优化的技术,在另外的实施例中(未在图4中图示),可以修改图4的示例性方法以使视频编解码器200能够在对应的缓冲器内存储压缩视频内容的多个完整GOP,另外或替代地,存储压缩视频内容的完整GOP的一个或多个预定的或自适应地确定的部分,而并不脱离所公开实施例的精神和范围。
此外,在另外的实施例中,图4的示例性技术可以与一个或多个错误处理功能和一个或多个传送功能相结合以通过通信网络(例如,网络130)将压缩视频内容交付给接收器(例如,客户设备112或数据仓库124)。例如,与所公开的实施例一致的传送功能可以使视频编解码器200能够识别要传送的压缩视频内容的GOP,发起对所识别的GOP的部分的传送,并且将所识别的GOP“锁定”在缓冲器内,直至完成传送处理为止。在这样的实施例中,视频编解码器200可能不能删除或盖写压缩视频内容的所识别的GOP,直至传送处理成功地完成之后为止。
如上所述,缓冲视频内容可以包括具有I帧、一个或多个对应的P帧、以及(另外或替代地)参考更早的参考帧和随后的参考帧这两者的一个或多个双向预测帧(即B帧)的视频的组。例如,视频编解码器200可以在GOP的P帧的对之间插入B帧(例如,在序列IBBPBBPBBP……中)。
虽然未在图4中图示,与所公开的实施例一致的示例性方法可以不仅基于与P帧相关联的参考数据,还基于与B帧相关联的参考数据,来生成虚拟I帧。例如,基于对应的B帧来生成虚拟I帧的技术可以修改经编码的视频内容的传送次序,并且还可以校正考虑进行转换的B帧之后的时间位置处布置的帧数据。在这样的实施例中,基于B帧来生成虚拟I帧可以在缓冲视频内容内创建可独立解码的起始点或IDR帧(瞬时解码器刷新帧)。
使用上述处理,视频编解码器200可以支持根据H.264或H.265标准对视频数据进行大GOP长度编码以及在具有有限缓冲存储器的网络相机(例如,图1的网络相机102)内缓冲经编码的帧数据。在这样的实施例中,图4的示例性过程可以使视频编解码器200能够响应于触发偶发事件,向接收器提供在事件之后捕捉的经编码的视频内容以及紧接在偶发事件之前向接收器提供所捕捉的视频的缓冲视频内容。
例如,触发偶发事件可以包括但不限于接收器(例如,客户设备112)跨越网络130传送视频内容的请求。在这样的实施例中,客户设备112的用户可能正在观看由网络相机(例如,网络相机102)捕捉的经流传输的视频内容,并且可以响应于发生在经流传输的内容内的偶发事件来请求交付紧接偶发事件之前和之后所捕捉的视频内容。在这种情况下,用户可以访问网页或与网络相机102相关联的其他图像用户界面,以请求交付视频内容,以及另外或替代地,指定内容的接收器。此外,在这样的实施例中,用户还可以从与网络相机或视频解码器(例如,SD卡或闪速存储器设备)合并的存储设备获得紧接偶发事件之前和之后所捕捉的视频内容。
所公开的实施例不限于由连网设备的用户发起的请求,在另外的实施例中,视频编解码器200可以包括使视频编解码器200能够识别所捕捉的原始图像数据的一部分内的触发偶发事件的功能(例如,由CPU 262执行的一个或多个软件应用)。例如,这些触发偶发事件可以包括但不限于出现在原始图像数据的该部分内的特定个体、在原始图像数据中发生的特殊动作、经过一段时间的安静之后的原始图像数据内的运动或者能够被视频编解码器200的功能检测到的任何另外的或替代的事件。此外,在这样的实施例中,客户设备112的用户可以访问网页或与(例如,在网相机102内所包括的)视频编解码器200相关联的其他图像用户界面来指定一个或多个触发事件以便由视频编解码器200进行检测。
此外,在另外的实施例中,视频编解码器200可以基于由一个或多个外部传感器生成的信号来检测触发偶发事件。例如,视频编解码器200可以与一个或多个传感器(包括但不限于热传感器、运动传感器、辐射传感器、声学传感器、门或继电器触点传感器以及红外传感器)进行通信以基于视频编解码器200周围(例如,合并视频编解码器200的网络相机102的周围)的状况来检测一个或多个触发事件。在这样的实施例中,传感器可以跨越通信网络130,或者替代地使用一个或多个接口(例如,接口246、268、250和252)通过有线或无线连接与视频编解码器200进行通信。当检测到触发偶发事件时,视频编解码器可以生成向指定的接收器传送缓冲数据的一部分的指令,例如,如以下参照图6所描述的那样。
图6例示与所公开的实施例一致的用于响应于触发偶发事件来传送缓冲视频内容的示例性方法600。方法600可以提供使视频编解码器(例如,片上视频编解码器200)能够识别触发偶发事件并且随后生成缓冲数据的一部分以传送给接收器的功能。
在步骤602中,视频编解码器200可以接收指示触发偶发事件的信息。在实施例中,如上所述,触发偶发事件信息可以包括但不限于来自客户设备(例如,客户设备112)的用户的压缩视频内容的请求、在由视频编解码器200接收的原始图像数据内的预定事件的发生、预定类型的原始图像数据的接收或者由与视频编解码器200进行通信的传感器或连网设备检测到预定事件。
此外,如上所述,视频编解码器200的接口(例如,接口246、248、250和252中的一个或多个)可以从客户设备、传感设备、继电器或门触点传感器、由另外的网络设备传送的警报、或适合于视频编解码器200并跨越通信网络130与视频编解码器200进行通信的任何另外的或替代的设备接收触发偶发事件信息。在这样的实施例中,客户设备112的用户可以使用网页或适合的图像用户界面来访问视频编解码器200,并且可以建立将导致视频编解码器200传送压缩视频内容的一个或多个触发偶发事件。
再参照图6,当接收到触发偶发事件信息时,视频编解码器200可以访问(例如,在存储设备208内的)缓冲的帧数据,以在步骤604中识别当前存储在缓冲器内的帧的最长有效序列。例如,在步骤604中,视频编解码器200可以将与在缓冲器内的最早编码的I帧相关联的序列识别为最长有效序列,或者在没有缓冲的I帧时,步骤604中所识别的最长有效序列可以对应于与最早生成的虚拟I帧相关联的序列。
在步骤606中,视频编解码器200确定在步骤604中所识别的序列的初始编码的帧是I帧还是虚拟I帧。如果初始编码的帧对应于I帧,则视频编解码器200可以在步骤608中丢弃在所识别的序列中的任何虚拟I帧数据同时保持对应的P帧数据。
在步骤610中,视频编解码器200可以生成至少包括用于随后的传送的I帧的缓冲器序列的图片组(GOP),并且在步骤612中,视频编解码器200生成向指定的接收器传送缓冲的GOP的指令。在实施例中,客户设备(例如,客户设备112和114中的一个)的用户可以建立跨越网络130的与视频编解码器200的通信会话,并且可以访问适当的图像用户界面的网页以指定接收器。例如,指定的接收器可以包括但不限于客户设备112和114、视频管理系统120以及用户可以访问并且跨越网络130与视频编解码器200进行通信的任何另外的或替代的设备中的一个。随后,方法600在步骤614中完成。
然而,如果在步骤606中,所识别的序列的初始编码的帧对应于虚拟I帧,则对应于I帧的缓冲数据的一部分可能已经被盖写。在这样的实施例中,如以上参照图5C所概述的那样,视频编解码器200在步骤616中丢弃与初始虚拟I帧相关联的P帧数据(并且另外地,所识别的序列内的任何随后的虚拟I帧),并且在步骤618中基于初始虚拟I帧生成GOP。
方法600转回至步骤612,并且视频编解码器202生成向指定的接收器传送缓冲的GOP的指令。所述方法随后在步骤614中完成。
在上述实施例中,视频编解码器200可以缓冲以适于跨越通信网络130进行流传输交付的图片组(GOP)长度(例如128帧的GOP长度)进行编码的视频内容,并且随后可以响应于预定触发偶发事件,向指定的接收器交付该缓冲视频内容的一部分。例如,如上所述,缓冲视频内容的完整有效序列可以包括初始I帧(或初始虚拟I帧)、一个或多个虚拟I帧以及一个或多个对应的P帧。使用图6的实施例,可以在传送之前丢弃初始I帧(或虚拟I帧)后面的虚拟I帧数据以有利于对应的P帧。在这样的实施例中,可以将得到的缓冲视频内容的序列的传送比特率减小至在通信网络130内运行的接收器(例如,客户设备112和114)可接受的级别。
此外,在这样的实施例中,视频编解码器200还可以跨越网络130将经编码的视频内容传送给接收器设备,以便实时观看和/或以指定的间隔来连续地或者响应于触发偶发事件来进行记录。例如,视频编解码器200可以将经编码的视频内容传送给通信网络130中的数据仓库(例如,数据仓库124)以便进行存储以及随后由基于IP的监视网络的用户(例如,客户设备112和114的用户)进行检索。
然而,虽然经编码的视频内容的GOP长度可以减少跨越通信网络130传送经编码的视频内容所需的比特率,但是以这样的GOP长度的经编码的视频内容的随后的存储可能造成不便于用户的随后访问。例如,使用适于跨越网络130传送的长GOP长度可能限制用户随机访问所存储的视频内容的部分以及浏览或跳过所述内容的能力。在这样的实施例中,例如,如以下参照图7所描述的那样,可以在存储之前,根据指定的接收器或指定的接收器的用户的要求来调整经编码的视频内容的GOP长度。
图7例示根据本公开的实施例的用于修改经编码的视频内容的图片组(GOP)长度的示例性方法700。方法700可以提供使经编码的视频内容的指定的接收器(例如,视频管理系统120的数据仓库124)能够在存储之前自适应地修改经编码的视频内容GOP长度的功能。
在图7中,数据仓库124可以在步骤702中将GOP计数器重置为单位值(unity),并且可以随后在步骤704中接收压缩视频内容的帧。在这样的实施例中,可以从通信网络130上的网络相机的视频编解码器(例如,片上编解码器200)接收压缩视频内容,并且经编码的视频内容可以与被调整为符合网络130的一个或多个状况的GOP长度相关联。此外,可以根据多种适当的差分编码方案(包括但不限于用于高清晰度视频的H.264标准和用于高效率视频编码的H.265标准)中的任意一种来生成经编码的视频内容。
在步骤706中,可以根据对应的差分编码方案对所接收的帧进行解码。数据仓库124可以随后在步骤708中确定经解码的帧是否对应于帧内帧(即I帧)。
如果经解码的帧对应于I帧,则数据仓库124可以在步骤710中基于所接收的I帧来建立新的GOP。在步骤712中,GOP计数器可以重置为单位值,从而指示新的GOP的建立,并且在步骤714中,数据仓库124可以存储经解码的帧数据。
当在步骤714中存储经解码的帧数据时,数据仓库124可以在步骤716中确定另外的经解码的视频内容是否可用于处理。如果另外的内容可以用于处理,则示例性方法700可以转回至步骤704,并且数据仓库124可以获得经编码的视频内容的另外的帧以便进行处理。然而,如果数据仓库124确定没有另外的内容可用于处理,则示例性方法700在步骤718中完成。
再参照步骤708,如果数据仓库124确定经解码的帧对应于帧间帧(即P帧),则指定的接收器可以在步骤720中确定经解码的帧的数量是否超过阈值。在这样的实施例中,GOP计数器的当前值可以指示与当前GOP相关联的经解码的帧的数量,并且可以将阈值调整为存储在数据仓库中的视频内容的最大GOP长度。
例如,可以使用128帧的GOP长度对所接收的视频内容进行编码,同时所存储的视频内容可以与较小的GOP长度(例如,32帧)相关联以使用户能够在检索时更有效地浏览视频内容。在这样的实施例中,阈值可以是与数据仓库124或数据仓库124的用户相关联的固定值,或者替代地,阈值可以响应于用户输入而变化。
如果所存储的经解码的帧的数量未能超过阈值,则GOP计数器可以在步骤722中累加一。示例性方法700可以转回至步骤714,并且如上所述,数据仓库124可以将经解码的P帧存储在至GOP内的对应位置处。
然而,如果数据仓库124在步骤720中确定所存储的经解码的帧的数量超过阈值,则指定的接收器可以在步骤724中基于经解码的P帧来生成虚拟I帧,并且可以在步骤726中基于虚拟I帧来生成新的GOP。在这样的实施例中,如以上参照图5A至5C所概述的那样,为了生成GOP,在步骤726中的新的GOP的生成有效地将虚拟I帧转换成对应的I帧。
当在步骤726中生成新的GOP时,示例性方法700转回至步骤712,并且GOP计数器重置为单位值。如以上所概述的那样,数据仓库124可以随后在步骤714中存储虚拟I帧数据以形成新的GOP,并且数据仓库124可以在步骤716中确定另外的经编码的视频内容是否可用于处理。示例性方法700在步骤718中完成。
在上述实施例中,视频管理系统120的数据仓库124可以在存储之前自适应地修改经编码的视频内容的GOP长度。在这样的实施例中,数据仓库124对应于经编码的视频内容的指定的接收器,其可以由与网络相机102和104以及视频编码单元116中的一个或多个进行通信的用户来指定。所公开实施例不限于这样的示例性接收器,在另外的实施例中,经编码的视频内容的指定的接收器可以包括但不限于可以与数据仓库124配合的客户设备112和114、视频管理服务器122、以及能够通过网络130进行通信以接收经编码的视频内容的任何另外的或替代的设备中的一个或多个。
使用上述处理,视频编解码器(例如,片上编解码器200)可以生成并利用虚拟I帧,以在有限存储容量的设备内缓冲在长GOP长度内进行编码的视频内容。此外,在经编码的视频内容的指定的接收器(例如,数据仓库124)处运行的类似的视频编解码器可以生成并利用这样的虚拟I帧,以在存储前自适应地调整经编码的视频内容的GOP长度。在这样的实施例中,由布置在编码器(例如,网络相机102)和解码器(例如,数据仓库124或客户设备112和114)处的视频编解码器进行的虚拟I帧的生成和使用使得导致用于在通信网络(例如,图1的网络130)上传送经编码的视频内容的可接受的比特率的GOP长度可行。
然而,所公开的实施例不限于这样的静态传送比特率。与所公开的实施例一致的视频编解码器可以以多种传送比特率(例如,3种比特率)对相同的视频内容进行编码,可以将其存储在外部数据仓库中以便随后传送给客户设备。在这样的实施例中,可以通过图形用户界面或者程序化地响应于改变网络状况地,将客户设备配置为请求以不同的比特率来交付经编码的视频内容。
然而,客户设备请求修改经编码的视频内容的传送比特率的能力可能受限于与不同的传送比特率相关联的GOP长度。例如,与以较高的传送比特率进行编码的视频内容的对应部分相比,用较低的比特率编码的视频内容可以与更长的GOP长度相关联,并且同样地,可以与连续的I帧之间的更长的间隔相关联。在这样的实施例中,GOP长度上的不均衡可能限制客户设备在以不同的传送比特率进行编码的视频内容之间进行无缝切换的能力。
在另外的实施例中,视频编解码器可以在经编码的内容的流的不同时间位置处生成虚拟I帧以建立使接收器设备能够在经编码的视频内容的传送期间修改比特率的“切换点”。例如,如上所述,视频编解码器可以包括以三种比特率(例如,“低”、“中”和“高”)对视频内容进行编码以生成经编码视频内容的三个信道的功能。在这样的实施例中,经编码的视频内容的信道可以存储在数据仓库(例如,视频管理系统120的数据仓库124)内,并且可以在所存储的视频内容的不同时间位置处生成虚拟I帧以建立切换点,例如,如以下参照图8所描述的那样。
图8例示根据本公开的实施例的具有多个切换点的压缩视频内容的3个信道的示例性数据结构800。在图8中,数据结构800例示以3种对应的比特率进行编码的压缩视频内容的3个信道。例如,信道802对应于所存储的以“高”比特率进行编码的视频内容,信道804对应于所存储的以“中”比特率进行编码的视频内容,并且信道806对应于所存储的以“低”比特率进行编码的视频内容。然而,所公开的实施例不限于这样的示例性比特率,在另外的实施例中,数据结构800可以包括以对本领域技术人员显而易见的以及对通信网络130的设备适当的任何另外的或替代的比特率进行编码的任何另外的或替代的数量的视频内容信道。
在图8中,数据结构800例示信道802、804和806的经编码的视频内容的图片组(GOP)的一部分。此外,如上所述,在信道802、804和806中的每一个内,在整个所存储的视频内容的任意且固定的时间位置处建立切换点。例如,在图8的实施例中,在每个信道的经编码的视频内容的每一分钟处建立一个切换点。然而,所公开的实施例不限于按照这种规则的时间间隔来布置的切换点,在另外的实施例中,可以在所存储视频内容内的任何另外的时间位置处建立切换点,而不脱离所公开实施例的精神和范围。
在实施例中,视频编解码器(例如,图2的片上视频编解码器200)可以通过在时间位置处生成并存储虚拟I帧建立在所存储的视频内容的对应时间位置处的切换点。例如,在等于两分种的时间处,视频编解码器200可以对初始I帧812以及到P帧814的连续的P帧进行解码以生成对应于P帧814的原始图像数据的经解码的图像,由此生成信道802的切换点。然后,视频编解码器通过使用对应的I帧算法(例如,H.264标准或H.265标准的I帧编码方案)对经解码的图像重新编码,来生成对应于P帧814的虚拟I帧816。然后,可以将虚拟I帧816存储在数据仓库中的信道802内。
然而,所公开的实施例不限于这种用于生成虚拟I帧的示例性技术。例如,上述的差分编码方案中的一种或多种(例如,H.264标准或H.265标准的I帧算法)可以命令视频编解码器200对新编码的P帧进行解码,以生成对应的参考帧。在这样的实施例中,在对P帧814进行编码时,视频编解码器200可以使用对应的I帧算法直接对P帧814的参考数据重新编码以生成可以存储在数据仓库中的信道802内的虚拟I帧816,由此生成切换点。
以类似的方式,视频编解码器可以基于与P帧818相关联的经解码的图像来生成并存储虚拟I帧820,由此在信道804内建立对应的切换点,并且可以基于与P帧822相关联的经解码的图像来生成和存储虚拟I帧824,由此在信道806内建立对应的切换点。此外,视频编解码器200可以通过生成并存储对应于时间位置的虚拟I帧,在信道802、804和806的压缩视频内容内的任何另外的或替代的时间位置处(例如,在1分钟处、3分钟处,等等)生成切换点。
在实施例中,可以将经编码的视频内容的信道(例如,信道802、804和806)存储在与以一种或多种比特率向客户设备(例如,客户设备112和114)提供对流传输内容的访问的网络服务器相关联的数据仓库(例如,数据仓库124和视频管理服务器122)内。例如,客户设备112可以使用一种或多种以上所概述的通信协议来建立跨越通信网络(例如,通信网络130)的与视频管理服务器122的连接。
在这样的实施例中,视频管理服务器122可以向客户设备112提供识别可用于跨越所建立的连接的流传输下载的视频内容的一个或多个信道的信息。例如,所提供的信息可以包括但不限于可用的视频和音频内容的播放列表、不同的比特率信道的数量、每个信道的比特率、与内容相关联的持续时间(例如,固定持续时间或无限持续时间)、加密信息、识别编解码器的信息以及切换点之间的距离(例如,帧的数量或在时间上的时间量)。此外,在实施例中,可以按照规律的间隔、在视频内容的特定元素到期时、或者以对本领域技术人员显而易见的以及对客户设备112和视频管理服务器112适当的任何另外的或替代的间隔,向客户设备112提供内容列表的更新。
当接收到所提供的信息时,客户设备112将执行网络浏览器或其他适当的应用以呈现所提供的信息,以便显示给客户设备112的用户。在这样的实施例中,客户设备112的用户可以点击、输入一系列的按键、或者指示选择视频内容的所显示的元件中的一个或多个以便进行流传输下载。响应于用户的选择,客户设备112可以生成关于所选择的视频内容的请求,可以跨越网络130将其传送给视频管理服务器122。
在实施例中,关于所选媒体内容的请求可以包括识别视频内容的初始部分和用于视频内容的传送的初始带宽的信息。例如,客户设备112可以测量与网络130相关联的当前状况,并且可以包括识别与当前网络状况一致的所选择的内容的一个可用比特率的信息。
替代地,关于视频内容的初始请求可以与传送比特率的默认值、对应于客户设备112的功能的传送比特率、由用户指定的传送比特率、或者对本领域技术人员显而易见的并且对所选择的视频内容适当的任何另外的或替代的传送比特率相关联。当接收到所述请求时,视频管理服务器122可以将所请求的视频内容的初始部分与指定客户设备112可以自适应地调节所请求的视频内容的随后的部分的比特率的机制的额外信息一起传送给客户设备112,例如,如以下参照图9所描述的那样。
图9例示根据所公开的实施例的用于按照动态确定的传送比特率向请求设备传送视频内容的示例900。方法900可以提供使网络服务器(例如,视频管理服务器122)能够使用在对应的切换点处布置的一个或多个虚拟I帧来修改所请求的视频内容的传送比特率的功能。
在图9中,服务器122可以在步骤902中从客户设备(例如,客户设备112)接收关于视频内容的一部分的请求。如上所述,可以根据一个或多个以上所概述的通信协议(例如,TCP/IP)通过通信网络130从客户设备112传送所述请求,并且所述请求可以响应于由识别对客户设备112可用的的视频内容的一个或多个元素的网络服务器提供的信息。此外,在这样的实施例中,所接收的请求可以提出例如在客户设备112传送所述请求的期间与网络130的状况一致的、用于传送所请求的内容的比特率。
在步骤904中,服务器122可以从数据仓库(例如,数据仓库124)获得所请求的视频内容的初始部分,并且可以生成指示客户设备112回放所请求的视频内容的初始部分的信息。例如,服务器122可以选择用匹配或者替代地落入所请求的传送比特率的阈值内的传送比特率进行编码的视频内容的初始部分。此外,在实施例中,所生成的信息可以对应于所请求的内容的媒体描述符,媒体描述符识别所请求的内容的一个或多个切换点以及在切换点处可用的一个或多个另外的比特率。
在步骤906中,服务器122可以向客户设备112传送所请求的视频内容的初始部分和对应的回放信息。在实施例中,可以根据以上所概述的一种或多种通信协议跨越网络130进行传输。另外,在这样的实施例中,可以在传送给客户设备112之前,使用对本领域技术人员显而易见的以及对客户设备112和服务器122适当的多种加密技术中的任何一种,对所请求的视频内容的初始部分和回放信息进行加密。
客户设备112可以以对应的传送带宽来接收所请求的内容的初始部分。与初始部分同时地,客户设备112可以接收与所请求的内容相关联的回放信息。如上所述,回放信息可以包括但不限于识别可用于传送所请求的内容的一个或多个另外的带宽的信息以及识别客户设备112可以切换到不同的传送比特率的一处或多处切换点的信息。在这样的实施例中,可以通过网络130的共用通信信道来接收回放信息和所请求的视频内容的初始部分,或者替代地,可以使用网络130的专用反向信道将回放信息传送给客户设备112。
如上所述,在传送所请求的内容的初始部分的期间,客户设备112可以监视网络120的状况(例如,当前带宽)。例如,可以在传送所请求的内容的初始部分的期间连续地,或者替代地,在传送期间按照离散的间隔,对网络状况进行修改。此外,在实施例中,客户设备112可以被配置为按照规律的间隔,或者替代地,响应于检测到特定的网络状况,将识别当前网络状况的信息传送给服务器122。例如,可以在网络130的可用带宽下降到预定阈值以下时,将识别网络状态的信息传送给服务器122。
服务器122可以在步骤908中接收传送状态信息,并且可以在步骤910中确定鉴于网络130的当前条件,与所请求的视频内容相关联的当前传送比特率是否太大。如果当前的传送对于当前网络状况太大,服务器122可以在步骤912中确定是否可以以更低的传送比特率来获得压缩视频内容。例如,服务器122可以访问数据仓库124以确定数据仓库124是否存储以比当前的比特率更小的比特率进行编码的视频内容。
如果服务器122在步骤912中不能够定位以更低的比特率进行编码的压缩视频内容,则服务器122在步骤914中继续以当前传送比特率向客户设备112传送压缩视频内容。例如,参照图8,如果以信道806的“低”带宽向客户设备传送所请求的视频内容,则无论网络130的状态如何,服务器122都不能获得以甚至更低的比特率进行编码的所请求的视频内容。方法900在步骤916中完成。
替代地,如果服务器122能够识别以更低的比特率进行编码的所请求的视频内容的一部分,则服务器122可以决定在下一个切换点处,降低所请求的视频内容的传送比特率。在这样的实施例中,服务器122在步骤918中继续以当前比特率向客户设备112传送P帧,直至该下一个切换点为止。
例如,参照图8,当前传送比特率可以对应于信道804的“中”比特率,并且服务器122可以在1分钟和2分钟的标记之间的时间位置处接收传送状态信息。在步骤912中,服务器122可以识别可以以信道806的“低”比特率得到所请求的视频内容的一部分,并且在步骤918中,服务器122可以继续以信道的“中”带宽向客户设备112传送P帧,直至下一个切换点(例如2分钟标记处)为止。
在步骤920中,服务器122可以在下一个切换点处请求对应于所识别的更低的比特率的虚拟I帧。当接收到所请求的虚拟I帧时,服务器122可以以所识别的更低的比特率发起新的图片组(GOP),然后可以在步骤922中向客户102传送虚拟I帧和对应的P帧。例如,参照图8,服务器122可以请求与“低”比特率信道相关联的虚拟I帧824,并且可以随后以“低”传送带宽向客户设备112传送虚拟I帧824和对应的P帧。方法900随后在步骤916中完成。
再参照步骤910,如果服务器122确定所请求的视频内容的当前传送比特率与当前网络状况一致,则服务器122在步骤924中确定当前网络状况是否将适应更大的传送比特率。如果当前网络状况将不能适应更大或更小的传送比特率,则当前传送比特率对于当前网络状况是最优的,并且服务器122在步骤914中继续以当前传送比特率向客户设备112传送所请求的视频内容。方法900随后在步骤916中完成。
然而,如果服务器122在步骤924中确定当前网络状况将适应高的传送比特率,则服务器122在步骤926中确定可以以更高的传送比特率获得所请求的视频内容的一部分。例如,服务器122可以访问数据仓库124以确定数据仓库124是否存储以比当前比特率更大的比特率进行编码的视频内容。
如果服务器122不能在步骤926中定位以更高的比特率进行编码的压缩视频内容,则方法900转回至步骤914,并且服务器122继续以当前传送比特率向客户设备112传送压缩视频内容。例如,参照图8,如果以信道802的“高”带宽将所请求的视频内容传送给客户设备,则无论网络130的状态如何,服务器122都将不能获得以更高的比特率进行编码的所请求的视频内容。方法900在步骤916中完成。
替代地,如果服务器122能够识别以更高的比特率进行编码的所请求的视频内容的一部分,则服务器122可以确定在下一个切换点处增大所请求的内容的传送比特率。在这样的实施例中,服务器122在步骤928中继续以当前比特率向客户设备112传送P帧,直至该下一个切换点为止。
例如,参照图8,当前传送比特率可以对应于信道804的“中”比特率,并且服务器122可以在1分钟和2分钟的标记之间的时间位置处接收传送状态信息。在步骤912中,服务器122可以识别可以以信道802的“高”比特率得到所请求的视频内容的一部分,并且在步骤928中,服务器122可以继续以信道的“中”带宽向客户设备112传送P帧,直至下一个切换点(例如,2分钟标记)为止。
在步骤930中,服务器122可以在下一个切换点处请求对应于所识别的更高的比特率的虚拟I帧。当接收到所请求的虚拟I帧时,服务器122可以以所识别的更高的比特率发起新的图片组(GOP),然后可以在步骤932中向客户102传送虚拟I帧和对应的P帧。例如,参照图8,服务器122可以请求与“高”比特率信道相关联的虚拟I帧816,并且可以随后以“高”传送带宽向客户设备112传送虚拟I帧816和对应的P帧。方法900随后在步骤916中完成。
图10A和10B例示根据所公开的实施例的在6分钟的期间内的对经编码的视频内容的传送比特率的示例性调节。例如,在图10A中,服务器122可以以“低”的传送比特率向客户设备112传送经编码的视频内容的初始部分。在1分钟处的第一切换点1002之前,服务器122可以确定当前网络状况将适应更高的传送比特率,并且如图10B所示,服务器122在第一切换点1002处请求与“中”比特率相关联的虚拟I帧。服务器122继续以“低”带宽传送P帧,直至第一切换点1002为止,并且随后在第一切换点1002之后以“中”比特率向客户设备112传送虚拟I帧和对应的P帧。
类似地,在2分钟处的第二切换点1004之前,服务器122可以确定当前网络状况将适应还要更高的传送比特率,并且如图10B所示,服务器122可以请求与“高”比特率相关联的虚拟I帧。在这样的实施例中,服务器122继续以“中”带宽传送P帧,直至第二切换点1004为止,并且随后在第二切换点1004之后以“高”比特率向客户设备112传送虚拟I帧和对应的P帧。
然而,服务器122可以确定在第三切换点1006之前的网络130的状况不能支持“高”比特率。在这样的实施例中,如图10B所概述的那样,服务器122可以在第三切换点1006请求与“中”比特率相关联的虚拟I帧。服务器122继续以“高”带宽传送P帧,直至第三切换点1006为止,并且随后在第三切换点1006之后以“中”比特率向客户设备112传送虚拟I帧和对应的P帧。
在图10A和10B的示例性实施例中,服务器122可以确定在第四切换点1008处,“中”传送比特率对于网络状况是最优的,因此,不予以改变比特率。然而,在第五切换点1010处,服务器122可能接收指示网络130能够支持更高的传送比特率的状态信息。在这样的实施例中,如图10B所示,服务器122可以在第五切换点1010处请求与“高”比特率相关联的虚拟I帧。服务器122可以继续以“中”带宽传送P帧,直至第二切换点1006为止,并且随后在第五切换点1010之后以“高”比特率向客户设备112传送虚拟I帧和对应的P帧。
图11A和11B例示根据所公开的实施例的在6分钟的时间内的对经编码的视频内容的传送比特率的另外一组示例性调节。如上所述,服务器122可以以“低”的传送比特率向客户设备112传送图11A和11B中的经编码的视频内容的初始部分。然而,在1分钟处的第一切换点1102之前,服务器122可以确定当前网络状况将适应更高的传送比特率,并且如图11B所示,服务器122在第一切换点1102处请求与“中”比特率相关联的虚拟I帧。服务器122继续以“低”带宽传送P帧,直至第一切换点1102为止,并且可以随后在第一切换点1102之后以“中”比特率向客户设备112传送虚拟I帧和对应的P帧。
然而,相对于图10A和10B的示例,服务器122确定对于随后的切换点1104、1106、1108和1110中的每一处的网络状况,“中”传送比特率是最优的。在这样的实施例中,可以继续以“中”比特率传送具有当前GOP的P帧或者I帧以及与随后的GOP相关联的随后的P帧。
在上述实施例中,客户设备112被配置为在经编码的视频内容的传输期间,测量通信网络(例如,通信网络130)的一个或多个状况。在这样的实施例中,如上所述,可以周期性地或者响应于特定网络事件,向服务器122传送指示当前网络状态的信息。
然而,所公开的实施例不限于这种网络测量技术。例如,在接收时并且在显示之前,客户设备112可以将经编码的视频内容的至少一部分存储在缓冲器中。在这样的实施例中,在客户设备112的缓冲器内的数据的量可以指示网络130的当前状况。例如,如果在客户设备112处的缓冲数据的量超过阈值,则对应的传送比特率可能太大,并且如上所述,作为状态信息,可以向服务器122传送指示需要减小传送比特率的信息。
此外,在所公开的实施例中,服务器122确定是否要基于可以由客户设备112传送给服务器122的通信网络(例如,通信网络130)的一个或多个状况来调节视频内容的传送比特率。所公开的实施例不限于这样的调节机制,在另外的实施例中,服务器122可以基于来自客户设备112的用户的请求来调节传送比特率。例如,用户可以访问网页或其他与服务器122相关联的图形用户界面,并且可以从客户设备112传送肯定请求以增大或减小传送比特率。在这样的实施例中,可以基于客户设备112的一项或多项能力而不是基于网络状况来发起对传送比特率的修改。
另外,所公开的实施例包括在所存储的视频内容内的固定时间位置处布置的切换点,例如以图10A和10B的1分钟间隔布置的切换点1002、1004、1006、1008和1010。所公开的实施例不限于这样的固定切换点,在另外的实施例中,可以响应于改变网络状况、改变设备状况、或者内容的一个或多个特征,由视频编解码器(例如,片上视频编解码器200)或者一个或多个客户设备(例如,客户设备112和114)来自适应地确定这些切换点的时间位置。
此外,在另外的实施例中,客户设备(例如,客户设备112)或网络服务器(例如,服务器122)中的一个或多个可以请求在固定切换点之前生成另外的切换点。例如,参照图10A和10B,客户设备112可能在第二切换点1004之后不久经历网络状况的显著劣化。在这样的实施例中,可以将关于立即生成切换点的请求传送给服务器122,另外或替代地,跨越通信网络130的反向信道传送给与压缩视频内容相关联的视频编解码器。当接收到所述请求时,视频编解码器可以生成对应的I帧,可以将其存储在与服务器122相关联的数据仓库(例如,寄存器124)内以便传送给客户设备112,或者替代地,可以直接传送给客户设备112。
如上所述,客户设备112和114、视频管理服务器122以及数据仓库124可以用基于至少一个处理器或计算机的系统实现。图12例示可以实现与本公开一致的实施例的示例性计算机系统1200。计算机系统1200包括一个或多个处理器,诸如处理器1202。处理器1202连接到通信基础设施1206,诸如总线或例如图1的网络130的通信网络。
计算机系统1200还包括主存储器1208,例如随机存取存储器(RAM),并且可以包括辅助存储器1210。辅助存储器1210可以包括例如硬盘驱动器1212和/或表示磁带驱动器、光盘驱动器、CD/DVD驱动器等的可移动存储驱动器1214。可移动存储驱动器1214以已知的方式对可移动存储单元1218进行读取和/或写入。可移动存储单元1218表示由可移动存储驱动器1214读取和写入的磁带、光盘或其他存储介质。应该理解的是,可移动存储单元1218可以表示计算机可读介质,在其中存储了将由处理器1202执行的计算机程序、指令集、代码或数据。
在替代的实施例中,辅助存储器1210可以包括用于允许将计算机程序或指令集载入到计算机系统1200中的其他装置。这样的装置可以包括例如可移动存储单元1222和接口1220。这样的装置的示例可以包括可移动存储器芯片(例如,EPROM、RAM、ROM、DRAM、EEPROM、闪速存储器设备或者其他易失性或非易失性存储器设备)以及相关联的插座、或者允许将指令和数据从可移动存储单元1222传输至计算机系统1200的其他可移动存储单元1222和接口1220。
计算机系统1200还可以包括一个或多个通信接口,诸如通信接口1224。通信接口1224允许在计算机系统1200和外部设备之间传输计算机程序(或指令集)和数据。通信接口1224的示例可以包括调制解调器、网络接口(例如,以太网卡)、通信端口、PCMCIA槽和卡等。可以以信号226的形式经由通信接口1224传输计算机程序(或指令集)和数据,信号266可以是能够由通信接口1224接收的电信号、电磁信号、光信号或其他信号。经由通信路径(例如,信道1228)将这些信号1226提供给通信接口1224。信道1228携带信号1226,并且可以使用电线、电缆、光纤、RF链接和/或其他通信信道来实现。在本发明的实施例中,信号1226包含被发送给处理器1202的数据包。还可以以信号1226的形式,经过通信路径1228,从处理器202发送表示经处理的包的信息。
此外,尽管未在图12中图示,但是客户设备112和114、视频管理服务器122以及数据仓库124中的一个或多个还可以包括基于硬件或软件的、能够对由网络相机102和104以及视频编码单元116提供的视频内容进行解码的视频编解码器。例如,客户设备112和114、视频管理服务器122以及数据仓库124可以包括与如上所述的片上视频编解码器200一致的、基于硬件的编解码器单元,以便对根据用于高清晰度视频的H.264标准进行编码的视频内容进行解码和操作。
术语“存储设备”和“存储介质”可以指包括但不限于主存储器1208、辅助存储器1210、安装在硬盘驱动器1212中的硬盘以及可移动存储单元1218和1222的具体设备。此外,术语“计算机可读介质”可以指包括但不限于安装在硬盘驱动器1212中的硬盘、主存储器1208和辅助存储器1210的任意组合以及可移动存储单元1218和1222的设备,其分别向计算机系统1200的处理器1202提供计算机程序和/或指令集。术语“计算机可读介质”还可以指与片上视频编解码器200的处理器242和对应的高速缓存244进行通信并且向编解码器200的处理器提供计算机程序和/或指令集的存储单元,例如存储单元280。这样的计算机程序和指令集可以存储在一个或多个计算机可读介质内。另外或替代地,计算机程序和指令集还可以经由通信接口124来接收并存储在一个或多个计算机可读介质上。
当由处理器1202执行时,这样的计算机程序和指令使处理器1202能够实施在本文中所描述的计算机实现的方法。类似地,当由处理器242执行时,这样的计算机程序和指令还使处理器242能够实施在本文中所描述的计算机实现的方法。程序和指令集的示例包括例如机器码(诸如由编译器产生的代码)以及包含可以由处理器1202和242使用解析器来执行的高级代码的文件。
此外,在本文中所描述的计算机实现的方法可以在计算机系统的单个处理器上实现,诸如系统1200的处理器1202。然而,在另外的实施例中,所公开的计算机实现的方法可以使用在单个计算机系统内的一个或多个处理器来实现,另外或替代地,在经由网络链接的分开的计算机系统内的一个或多个处理器上实现。
另外,在本文中所描述的计算机实现的方法可以由对原始图像数据进行编码并生成压缩视频内容(例如,根据用于高清晰度视频的H.264标准和用于高效率视频编码的H.265标准)的基于硬件的视频编解码器(例如,图2的片上视频编解码器200)来实现。所公开的实施例不限于这种片上视频编解码器,在另外的实施例中,可以由处理器(例如,图12的处理器1202)执行基于软件的视频编解码器,以对原始图像数据进行编码并生成压缩视频内容。
在本文中参照附图对不同的实施例进行了描述。然而,很明显地,可以对其进行和种修改和变化,并且可以实现另外的实施例,而不脱离在随后的权利要求书中所阐述的本发明的更宽泛的范围。
此外,从对本公开的说明书的考虑以及一个或多个实施例的实践,其他实施例对本领域技术人员将是显而易见的。因此,要将本公开以及在本文中的示例认为仅仅是示例性的,由后面所列的示例性权利要求指出本发明的真实的范围和精神。

Claims (58)

1.一种计算机实现的方法,其包含:
接收视频内容的流;
使用视频编解码器对视频内容流进行编码以生成压缩视频数据,所述压缩视频数据包含帧内帧和多个对应的帧间帧;以及
在缓冲器内存储所述压缩视频数据,
其中,所述进行编码包含:
获得与经编码的帧内帧相关联的数据;
基于帧内帧数据对视频内容流的一部分进行编码以生成对应的一个帧间帧;
确定存储在缓冲器中的数据的量是否超过第一阈值;
当缓冲器中的数据的量超过第一阈值时,对所生成的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及
输出虚拟帧内帧和对应的帧间帧以便存储在缓冲器中。
2.如权利要求1所述的方法,其中,所述进行编码还包含对视频内容流的第一部分进行编码以生成帧内帧,所述第一部分在与帧间帧相关联的视频内容流的部分之前。
3.如权利要求1所述的方法,其中,所述进行编码还包含:
当缓冲数据的量未能超过第一阈值时,计算与压缩视频数据相关联的图片组长度;
确定所计算的图片组长度是否超过预定阈长度;以及
当所计算的图片组长度不超过预定阈长度时,对视频内容流的另外的部分进行编码以生成另外的帧间帧。
4.如权利要求3所述的方法,其中:
缓冲器包含帧内帧和对应的帧间帧的一个或多个先前编码的组;以及
当所计算的图片组长度超过预定阈长度时,丢弃帧内帧和对应的帧间帧的先前编码的组。
5.如权利要求1所述的方法,其中,所述进行编码还包含确定缓冲数据的量是否超过第二阈值,所述第二阈值大于第一阈值。
6.如权利要求5所述的方法,其中,所述进行编码还包含当缓冲数据的量超过第二阈值时,保持虚拟帧内帧,并且丢弃虚拟帧内帧之前的经编码的视频内容。
7.如权利要求1所述的方法,还包含:
接收指示触发偶发事件的信息;以及
基于所接收的信息来生成向接收器传送缓冲数据的至少一部分的指令。
8.如权利要求7所述的方法,其中,所述触发偶发事件包含请求视频内容、在所接收的视频流内发生预定事件、经过接口接收预定数据、或者由传感器检测到预定事件中的至少一种。
9.如权利要求7所述的方法,其中,生成指令还包含:
确定缓冲数据是否包括帧内帧和虚拟帧内帧;
当缓冲数据包括帧内帧和虚拟帧内帧时,丢弃所述虚拟帧内帧,并且保持对应的帧间帧;以及
基于帧内帧来生成缓冲数据部分。
10.如权利要求7所述的方法,还包含:
确定缓冲数据是否是包括虚拟帧内帧并且未能包括帧内帧;以及
当缓冲数据包括虚拟帧内帧并且未能包括帧内帧时,基于虚拟帧内帧来生成缓冲数据部分。
11.如权利要求1所述的方法,还包含:
接收压缩视频数据的至少一个帧;
对所接收的帧进行解码;
确定经解码的帧是否对应于帧内帧;以及
当经解码的帧对应于帧内帧时,至少将经解码的帧存储在数据仓库中。
12.如权利要求11所述的方法,还包含:
确定经解码的帧对应于帧间帧;
当经解码的帧是帧间帧时,计算与所接收的数据相关联的图片组长度;
确定所计算的图片组长度是否超过预定阈长度;以及
当所计算的图片组长度未能超过预定阈长度时,至少将经解码的帧间帧存储在数据仓库内。
13.如权利要求12所述的方法,还包含:
当所计算的图片组长度超过预定阈长度时,基于经解码的帧间帧数据来生成另外的帧内帧;以及
至少将另外的帧内帧存储在数据仓库内。
14.如权利要求1所述的方法,其中:
压缩视频内容与比特率的对应值相关联;并且
所述进行编码还包含在压缩视频内容内的对应时间位置处建立至少一个切换点。
15.如权利要求14所述的方法,其中,所述切换点使压缩视频内容的接收器或分发器中的至少一个能够修改比特率。
16.如权利要求14所述的方法,还包含生成将压缩视频数据和与切换位置相关联的信息存储在数据仓库中的指令。
17.如权利要求16所述的方法,其中,所述建立切换点包含:
识别与对应时间位置相关联的帧间帧;
对所识别的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及
输出虚拟帧内帧以便按照所述时间位置存储在数据仓库中。
18.如权利要求14所述的方法,其中,所述进行编码还包含在压缩视频内容内的对应时间位置处建立多个切换点。
19.如权利要求18所述的方法,其中,在压缩视频内容内以固定间隔安排所述对应时间位置。
20.如权利要求14所述的方法,其中:
所述方法还包含接收创建切换点的请求,所述请求包含识别压缩视频内容内的时间位置的信息;并且
所述进行编码还包含响应于所述请求,在所识别的时间位置处建立切换点。
21.一种装置,包含:
视频编解码器,被配置为对视频内容的流进行编码以生成压缩视频数据,所述压缩视频数据包含帧内帧和多个对应的帧间帧;以及
存储设备,耦合到视频编解码器单元,并且被配置为在缓冲器内存储压缩视频数据,
其中,所述视频编解码器还被配置为:
获得与经编码的帧内帧相关联的数据;
基于帧内帧数据对视频内容流的一部分进行编码以生成对应的一个帧间帧;
确定存储在缓冲器中的数据的量是否超过第一阈值;
当缓冲数据的量超过第一阈值时,对所生成的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及
提供虚拟帧内帧和对应的帧间帧作为输出,以便存储在缓冲器中。
22.如权利要求21所述的装置,其中,所述视频编解码器还被配置为:
对视频内容流的第一部分进行编码以生成帧内帧,所述第一部分在与帧间帧相关联的视频内容流的部分之前。
23.如权利要求21所述的装置,其中,所述视频编解码器还配置为:
当缓冲数据的量未能超过第一阈值时,计算与压缩视频内容相关联的图片组长度;
确定所计算的图片组长度是否超过预定阈长度;以及
当所计算的图片组长度未能超过预定阈长度时,对视频内容流的另外的部分进行编码以生成另外的帧间帧。
24.如权利要求23所述的装置,其中:
缓冲器包含帧内帧和对应的帧间帧的一个或多个先前编码的组;并且
当所计算的图片组长度超过预定阈长度时,视频编解码器还配置为丢弃帧内帧和对应的帧间帧的先前编码的组。
25.如权利要求21所述的装置,其中,所述视频编解码器还被配置为:
确定缓冲数据的量是否超过第二阈值,所述第二阈值大于第一阈值。
26.如权利要求25所述的装置,其中,所述视频编解码器还被配置为:
当缓冲数据的量超过第二阈值时,保持虚拟帧内帧并且丢弃虚拟帧内帧之前的经编码的视频内容。
27.如权利要求21所述的装置,其中,所述视频编解码器还被配置为:
接收指示触发偶发事件的信息;以及
基于所接收的信息来生成向接收器传送缓冲数据的至少一部分的指令。
28.如权利要求27所述的装置,其中,所述视频编解码器还被配置为:
确定缓冲数据包括帧内帧和虚拟帧内帧;
当缓冲数据包括帧内帧和虚拟帧内帧时,丢弃虚拟帧内帧并且保持对应的帧间帧;以及
基于帧内帧来生成缓冲数据部分。
29.如权利要求27所述的装置,其中,所述视频编解码器还被配置为:
确定缓冲数据是否是包括虚拟帧内帧并且未能包括帧内帧;
当缓冲数据包括虚拟帧内帧并且未能包括帧内帧时,基于帧内帧来生成缓冲数据部分。
30.如权利要求21所述的装置,其中,所述视频编解码器还被配置为:
接收压缩视频数据的至少一个帧;
对所接收的帧进行解码;
确定经解码的帧是否对应于帧内帧;以及
当经解码的帧对应于帧内帧时,生成至少将经解码的帧存储在存储设备中的指令。
31.如权利要求30所述的装置,其中,所述视频编解码器还被配置为:
确定经解码的帧对应于帧间帧;
当经解码的帧是帧间帧时,计算与所接收的数据相关联的图片组长度;
确定所计算的图片组长度是否超过预定阈长度;以及
当所计算的图片组长度未能超过预定阈长度时,生成至少将经解码的帧间帧存储在存储设备内的指令。
32.如权利要求31所述的装置,其中,所述视频编解码器还被配置为:
当所计算的图片组长度超过预定阈长度时,基于经解码的帧间帧数据来生成另外的帧内帧;以及
生成至少将另外的帧内帧存储在存储设备内的指令。
33.如权利要求21所述的装置,其中:
压缩视频内容与比特率的对应的值相关联;并且
视频编解码器还被配置为在所述压缩视频内容中的对应时间位置处建立至少一个切换点。
34.如权利要求33所述的装置,其中,所述切换点使压缩视频内容的接收器或分发器中的至少一个能够修改比特率。
35.如权利要求33所述的装置,其中,所述视频编解码器还被配置为生成将与切换位置相关联的压缩视频数据和信息存储在存储设备中的指令。
36.如权利要求35所述的装置,其中,所述视频编解码器还被配置为:
识别与对应时间位置相关联的帧间帧;以及
对所识别的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及
输出虚拟帧内帧以便按照所述时间位置存储在存储设备中。
37.如权利要求33所述的装置,其中,所述视频编解码器还被配置为在压缩视频内容中的对应时间位置处建立多个切换点。
38.如权利要求37所述的装置,其中,在压缩视频内容内以固定间隔来安排所述对应时间位置。
39.如权利要求33所述的装置,其中,所述视频编解码器还被配置为:
接收创建切换位置的请求,所述请求包含识别压缩视频内容内的时间位置的信息;以及
响应于所述请求,在所识别的时间位置处建立切换点。
40.一种存储指令的有形的非临时性的计算机可读介质,所述指令当由至少一个处理器执行时使所述至少一个处理器执行以下步骤:
对视频内容的流进行编码以生成压缩视频数据,所述压缩视频数据包含帧内帧和多个对应的帧间帧;以及
在缓冲器内存储压缩视频数据,
其中,所述进行编码包含:
获得与经编码的帧内帧相关联的数据;
基于帧内帧数据对视频内容流的一部分进行编码以生成对应的一个帧间帧;
确定存储在缓冲器中的数据的量是否超过第一阈值;
当缓冲数据的量超过第一阈值时,对所生成的帧间帧进行解码,并且基于经解码的帧间帧数据来计算虚拟帧内帧;以及
输出虚拟帧内帧和对应的帧间帧以便存储在缓冲器中。
41.一种计算机实现的方法,包含:
接收指示与通信网络相关联的网络状况的信息;
基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致;
当初始比特率与网络状况不一致时,识别与压缩视频内容的初始比特率相关联的切换点,所述切换点与压缩视频内容中的对应时间位置相关联;以及
使用视频编解码器来生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的一部分的指令,所述部分包含以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
42.如权利要求41所述的方法,还包含当初始比特率与网络状况一致时,生成以初始比特率来传送压缩视频内容的指令。
43.如权利要求41所述的方法,还包含当初始比特率与网络状况不一致时,以修改的比特率来获得压缩视频内容的部分,修改的比特率与在切换点的时间位置处的网络状况一致。
44.如权利要求41所述的方法,还包含:
当初始比特率与网络状况不一致时,确定与网络状况相关联的比特率超过初始比特率;以及
以修改的比特率来获得压缩视频内容的部分,修改的比特率超过在切换点的时间位置处的初始比特率。
45.如权利要求41所述的方法,还包含:
当初始比特率与网络状况不一致时,确定初始比特率超过与网络状况相关联的比特率;以及
以修改的比特率来获得部分压缩视频内容,初始比特率超过在切换点的时间位置处的修改的比特率。
46.如权利要求41所述的方法,还包含:
接收关于压缩视频内容的请求,所述请求包含识别初始比特率的信息;以及
响应于所述请求,生成以初始比特率传送压缩视频内容的指令。
47.如权利要求46所述的方法,还包含生成传送与压缩视频内容相关联的回放信息的指令,所述回放信息包含识别压缩视频内容内的切换点的时间位置的信息。
48.一种装置,包括:
存储设备;以及
耦合到存储设备的视频编解码器,视频编解码器单元被配置为:
接收指示与通信网络相关联的网络状况的信息;
基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致;
当初始比特率与网络状况不一致时,识别与压缩视频内容的初始比特率相关联的切换点,所述切换点与压缩视频内容内的对应时间位置相关联;以及
生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的一部分的指令,所述部分包含以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
49.如权利要求48所述的装置,其中,所述视频编解码器还被配置为当初始比特率与网络状况一致时,生成以初始比特率来传送压缩视频内容的指令。
50.如权利要求48所述的装置,其中,所述视频编解码器还被配置为当初始比特率与网络状况不一致时,以修改的比特率来获得压缩视频内容的部分,修改的比特率与在切换点的时间位置处的网络状况一致。
51.如权利要求48所述的装置,其中,所述视频编解码器还被配置为:
当初始比特率与网络状况不一致时,确定与网络状况相关联的比特率超过初始比特率;以及
以修改的比特率来获得压缩视频内容的部分,修改的比特率超过在切换点的时间位置处的初始比特率。
52.如权利要求48所述的装置,其中,所述视频编解码器还被配置为:
当初始比特率与网络状况不一致时,确定初始比特率超过与网络状况相关联的比特率;以及
以修改的比特率来获得压缩视频内容的部分,初始比特率超过在切换点的时间位置处的修改的比特率。
53.如权利要求48所述的装置,其中,所述视频编解码器还被配置为:
接收关于压缩视频内容的请求,所述请求包含识别初始比特率的信息;以及
响应于所述请求,生成以初始比特率来传送压缩视频内容的指令。
54.如权利要求53所述的装置,其中,所述视频编解码器还被配置为生成传送与压缩视频内容相关联的回放信息的指令,所述回放信息包含识别所述压缩视频内容内的切换点的时间位置的信息。
55.一种存储指令的有形的非临时性计算机可读介质,所述指令当由至少一个处理器执行时使所述至少一个处理器执行以下步骤:
接收指示与通信网络相关联的网络状况的信息;
基于所述信息来确定跨越通信网络传送的压缩视频内容的初始比特率是否与网络状况一致;
当初始比特率与网络状况不一致时,识别与压缩视频内容的初始比特率相关联的切换点,所述切换点与压缩视频内容内的对应时间位置相关联;以及
生成在切换点的时间位置处以修改的比特率来传送压缩视频内容的部分的指令,所述部分包含以修改的比特率进行编码的虚拟帧内帧和对应的帧内帧。
56.一种计算机实现的方法,包含:
接收包含压缩视频数据的至少一个帧的视频内容的流;
对所接收的帧进行解码;
确定经解码的帧是否对应于帧间帧;
当经解码的帧是帧间帧时,计算与所接收的数据相关联的图片组长度;
确定所计算的图片组长度是否超过预定阈长度;
当所计算的图片组长度超过预定阈长度时,使用视频编解码器,基于经解码的帧间帧数据来生成另外的帧内帧;以及
至少将另外的帧内帧存储在数据仓库内。
57.如权利要求56所述的方法,还包含当经解码的帧对应于帧内帧时,至少将经解码的帧存储在数据仓库中。
58.如权利要求56所述的方法,还包含当所计算的图片组长度未能超过预定阈长度时,至少将经解码的帧间帧存储在数据仓库内。
CN201380043124.1A 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法 Active CN104641638B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810748424.4A CN108965883B (zh) 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261665855P 2012-06-28 2012-06-28
US61/665,855 2012-06-28
PCT/EP2013/063364 WO2014001381A2 (en) 2012-06-28 2013-06-26 System and method for encoding video content using virtual intra-frames

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810748424.4A Division CN108965883B (zh) 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法

Publications (2)

Publication Number Publication Date
CN104641638A true CN104641638A (zh) 2015-05-20
CN104641638B CN104641638B (zh) 2018-08-03

Family

ID=48782290

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380043124.1A Active CN104641638B (zh) 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法
CN201810748424.4A Active CN108965883B (zh) 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810748424.4A Active CN108965883B (zh) 2012-06-28 2013-06-26 使用虚拟帧内帧对视频内容进行编码的系统和方法

Country Status (6)

Country Link
US (2) US9813732B2 (zh)
EP (1) EP2868107B1 (zh)
JP (1) JP6169172B2 (zh)
KR (1) KR102077556B1 (zh)
CN (2) CN104641638B (zh)
WO (1) WO2014001381A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105323637A (zh) * 2015-10-29 2016-02-10 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
CN107193642A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 任务数据压缩切换方法、宜压缩程度评价方法及相关装置
CN107592540A (zh) * 2016-07-07 2018-01-16 腾讯科技(深圳)有限公司 一种视频数据处理方法及装置
CN108881951A (zh) * 2017-05-10 2018-11-23 三星电子株式会社 执行基于条带的压缩的图像处理装置和图像处理方法
CN110402462A (zh) * 2017-03-15 2019-11-01 微软技术许可有限责任公司 无用户感知情况下的低延时断裂
CN112567742A (zh) * 2018-06-14 2021-03-26 瑞典爱立信有限公司 用于编码360度沉浸式视频的系统和方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150189012A1 (en) * 2014-01-02 2015-07-02 Nvidia Corporation Wireless display synchronization for mobile devices using buffer locking
US9691181B2 (en) * 2014-02-24 2017-06-27 Sony Interactive Entertainment Inc. Methods and systems for social sharing head mounted display (HMD) content with a second screen
US20150295973A1 (en) * 2014-04-10 2015-10-15 Screenovate Technologies Ltd. Method for real-time multimedia interface management
US20150295783A1 (en) * 2014-04-10 2015-10-15 Screenovate Technologies Ltd. Method for real-time multimedia interface management sensor data
KR102264161B1 (ko) * 2014-08-21 2021-06-11 삼성전자주식회사 이미지 처리 장치, 이미지 처리 시스템, 이미지 처리 시스템의 동작방법 및 이미지 처리 시스템을 포함하는 시스템 온 칩
JP6239472B2 (ja) * 2014-09-19 2017-11-29 株式会社東芝 エンコード装置、デコード装置、ストリーミングシステム、および、ストリーミング方法
EP3021579B1 (en) * 2014-11-14 2016-10-12 Axis AB Method and encoder system for encoding video
EP3041233A1 (en) * 2014-12-31 2016-07-06 Thomson Licensing High frame rate-low frame rate transmission technique
CN105847722B (zh) * 2015-01-16 2019-04-12 杭州海康威视数字技术股份有限公司 一种视频存储方法和装置、读取方法和装置以及存取系统
CN105847790A (zh) * 2015-01-16 2016-08-10 杭州海康威视数字技术股份有限公司 一种码流传输方法及装置
CN105847825A (zh) * 2015-01-16 2016-08-10 杭州海康威视数字技术股份有限公司 视频编码码流的编码、索引存储和访问方法及相应装置
WO2016114788A1 (en) * 2015-01-16 2016-07-21 Hewlett Packard Enterprise Development Lp Video encoder
EP3070695B1 (en) * 2015-03-16 2017-06-14 Axis AB Method and system for generating an event video sequence, and camera comprising such system
KR101742258B1 (ko) 2016-02-29 2017-05-31 경희대학교 산학협력단 웹 기반 가상 데스크탑 프로토콜을 이용한 컨텐츠 제공 방법 및 장치
WO2017218522A1 (en) * 2016-06-13 2017-12-21 Arris Enterprises Llc Reduction of startup time in remote hls clients
JP7292901B2 (ja) * 2019-02-27 2023-06-19 キヤノン株式会社 送信装置、送信方法、及びプログラム
US11265599B2 (en) 2019-06-11 2022-03-01 Nvidia Corporation Re-encoding predicted picture frames in live video stream applications
CN116097652A (zh) * 2020-08-03 2023-05-09 杜比实验室特许公司 基于视口变化的双流动态gop访问

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1368816A (zh) * 2001-02-05 2002-09-11 株式会社日立制作所 运动图像数据的记录再生方法和装置
CN1650628A (zh) * 2002-02-25 2005-08-03 索尼电子有限公司 用于支持mp4中的avc的方法和设备
US20060034522A1 (en) * 2004-08-10 2006-02-16 Nader Mohsenian Method and system for equalizing video quality using selective re-encoding
CN1756359A (zh) * 2004-09-17 2006-04-05 三菱电机株式会社 速率自适应视频编码
CN101743753A (zh) * 2007-06-19 2010-06-16 万特里克斯公司 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
CN102450013A (zh) * 2009-03-24 2012-05-09 Streamwide公司 视频流部分的存储方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0695088B1 (en) 1994-07-29 2000-05-10 Sharp Kabushiki Kaisha Video storage type communication device
JP3321331B2 (ja) 1995-04-07 2002-09-03 シャープ株式会社 画像蓄積通信装置
US6167083A (en) 1997-04-04 2000-12-26 Avid Technology, Inc. Computer system and process for capture editing and playback of motion video compressed using interframe and intraframe techniques
US6483875B1 (en) 1997-06-19 2002-11-19 Sony Corporation Picture signal processing apparatus
EP0920216A1 (de) 1997-11-25 1999-06-02 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zur Codierung und zur Decodierung einer Bildsequenz
DE19806913A1 (de) 1998-02-19 1999-08-26 Cit Alcatel Verfahren zum Generieren einer Einsprungstelle in einen Bilddatenstrom und Vorrichtung zur Durchführung des Verfahrens
US6731684B1 (en) 1998-09-29 2004-05-04 General Instrument Corporation Method and apparatus for detecting scene changes and adjusting picture coding type in a high definition television encoder
GB2353655B (en) 1999-08-26 2003-07-23 Sony Uk Ltd Signal processor
US7058130B2 (en) 2000-12-11 2006-06-06 Sony Corporation Scene change detection
US7376341B2 (en) 2001-07-12 2008-05-20 Thomson Licensing Modifying video signals by converting non-intra pictures
US6804301B2 (en) 2001-08-15 2004-10-12 General Instrument Corporation First pass encoding of I and P-frame complexity for compressed digital video
US20030163477A1 (en) * 2002-02-25 2003-08-28 Visharam Mohammed Zubair Method and apparatus for supporting advanced coding formats in media files
JP4355156B2 (ja) * 2002-04-16 2009-10-28 パナソニック株式会社 画像復号化方法及び画像復号化装置
US7555042B2 (en) 2003-01-08 2009-06-30 Samsung Electronics Co., Ltd. Method and apparatus for reverse play
JP4066852B2 (ja) 2003-03-04 2008-03-26 株式会社日立製作所 ビデオ符号化方式変換装置、変換方法、およびこれを用いたビデオ記録再生装置
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US20040260827A1 (en) * 2003-06-19 2004-12-23 Nokia Corporation Stream switching based on gradual decoder refresh
US7746928B2 (en) * 2004-12-30 2010-06-29 General Instruments Corporation Method and apparatus for providing rate control
US7636395B2 (en) 2005-03-14 2009-12-22 Nokia Corporation Method and device for splicing video data in compressed domain
US20060239563A1 (en) 2005-04-25 2006-10-26 Nokia Corporation Method and device for compressed domain video editing
US20070174880A1 (en) 2005-07-05 2007-07-26 Optibase Ltd. Method, apparatus, and system of fast channel hopping between encoded video streams
JP4534935B2 (ja) 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
WO2010106670A1 (ja) 2009-03-19 2010-09-23 富士通株式会社 画像符号化装置、画像符号化制御方法および画像符号化プログラム
US9313512B2 (en) * 2009-11-25 2016-04-12 Vudu, Inc. Multiple bit rate encoding by segments
US8681858B2 (en) * 2009-12-23 2014-03-25 General Instrument Corporation Rate control for two-pass encoder
US9137551B2 (en) * 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
US9185408B2 (en) * 2011-11-18 2015-11-10 Google Technology Holdings LLC Efficient storage of motion information for high efficiency video coding
US9106887B1 (en) * 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1368816A (zh) * 2001-02-05 2002-09-11 株式会社日立制作所 运动图像数据的记录再生方法和装置
CN1650628A (zh) * 2002-02-25 2005-08-03 索尼电子有限公司 用于支持mp4中的avc的方法和设备
US20060034522A1 (en) * 2004-08-10 2006-02-16 Nader Mohsenian Method and system for equalizing video quality using selective re-encoding
CN1756359A (zh) * 2004-09-17 2006-04-05 三菱电机株式会社 速率自适应视频编码
CN101743753A (zh) * 2007-06-19 2010-06-16 万特里克斯公司 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
CN102450013A (zh) * 2009-03-24 2012-05-09 Streamwide公司 视频流部分的存储方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105323637A (zh) * 2015-10-29 2016-02-10 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
CN105323637B (zh) * 2015-10-29 2018-08-24 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
CN107193642A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 任务数据压缩切换方法、宜压缩程度评价方法及相关装置
CN107592540A (zh) * 2016-07-07 2018-01-16 腾讯科技(深圳)有限公司 一种视频数据处理方法及装置
CN110402462A (zh) * 2017-03-15 2019-11-01 微软技术许可有限责任公司 无用户感知情况下的低延时断裂
CN108881951A (zh) * 2017-05-10 2018-11-23 三星电子株式会社 执行基于条带的压缩的图像处理装置和图像处理方法
CN108881951B (zh) * 2017-05-10 2022-06-21 三星电子株式会社 执行基于条带的压缩的图像处理装置和图像处理方法
CN112567742A (zh) * 2018-06-14 2021-03-26 瑞典爱立信有限公司 用于编码360度沉浸式视频的系统和方法

Also Published As

Publication number Publication date
US20160050434A1 (en) 2016-02-18
US20150156511A1 (en) 2015-06-04
KR102077556B1 (ko) 2020-02-14
US10009630B2 (en) 2018-06-26
WO2014001381A3 (en) 2014-03-06
JP6169172B2 (ja) 2017-07-26
US9813732B2 (en) 2017-11-07
EP2868107B1 (en) 2021-03-17
JP2015521825A (ja) 2015-07-30
KR20150040872A (ko) 2015-04-15
WO2014001381A2 (en) 2014-01-03
CN104641638B (zh) 2018-08-03
CN108965883A (zh) 2018-12-07
CN108965883B (zh) 2022-08-30
EP2868107A2 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
CN104641638A (zh) 使用虚拟帧内帧对视频内容进行编码的系统和方法
EP1879384B1 (en) Improved pre-alarm video buffer
WO2006044703A2 (en) Method and system for multi-path video delivery and distribution
CN108370416A (zh) 从视频流生成输出视频
US20180302630A1 (en) Method And Apparatus For Improving Efficiency Of Content Delivery Based On Consumption Data
CN113347488B (zh) 视频渲染方法、装置、设备及存储介质
CN111182322B (zh) 一种导播控制方法、装置、电子设备和存储介质
KR20150106351A (ko) 모션 비디오의 재생을 위한 방법 및 시스템
CN105898358B (zh) 视频数据的发送方法及装置
US11438545B2 (en) Video image-based media stream bandwidth reduction
CN107707830B (zh) 基于单向通信的全景视频播放拍照系统
US20080174697A1 (en) Apparatus of processing image sections and control method thereof
CN103260027B (zh) 用于展示图像数据的视频系统和方法
CN115297343A (zh) 视频数据发送方法、装置及电子设备
KR100899666B1 (ko) 분산 다중 스트리밍 전송 장치
WO2012042701A1 (ja) マルチストリーム符号化制御装置及びカメラシステム
KR101732995B1 (ko) 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
JP6946826B2 (ja) 映像処理装置及び方法
CN117440175A (zh) 用于视频传输的方法、装置、系统、设备和介质
KR101336820B1 (ko) 다채널 트릭 모드에 특화된 복호화 장치 및 방법
JP2024046420A (ja) 画像処理装置、画像処理方法
US20180262790A1 (en) Systems and methods for adaptive streaming using jpeg 2000
KR100971630B1 (ko) 인터넷 전화 프로토콜을 이용한 영상 전화기간 영상공유방법 및 이를 이용한 영상 전화기
JP2006262205A (ja) エンコーダ及びコーデック方法並びにネットワーク伝送システム
CN117666764A (zh) 图像显示方法、装置、设备及介质

Legal Events

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