CN115462090A - 使用关键帧库的高级视频代码化 - Google Patents

使用关键帧库的高级视频代码化 Download PDF

Info

Publication number
CN115462090A
CN115462090A CN202180006692.9A CN202180006692A CN115462090A CN 115462090 A CN115462090 A CN 115462090A CN 202180006692 A CN202180006692 A CN 202180006692A CN 115462090 A CN115462090 A CN 115462090A
Authority
CN
China
Prior art keywords
key frame
stored
frame
key
video data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180006692.9A
Other languages
English (en)
Inventor
杰罗尔德·理查德·兰德尔
斯图尔特·詹姆斯·迈伦·尼科尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN115462090A publication Critical patent/CN115462090A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/10024Color image
    • 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种方法包括:基于包括至少一个视频帧的接收到的视频流生成关键帧和帧间预测帧中的至少一个,帧间预测帧是使用来自关键帧的信息生成的;确定关键帧是否被存储在接收设备处;基于关键帧是否被存储在接收设备处,选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个;以及传送视频数据和帧间预测帧中的至少一个。

Description

使用关键帧库的高级视频代码化
技术领域
实施例涉及压缩和解压缩视频。
背景技术
编码器能够被用于压缩视频(例如,视频帧)和/或图像。与原始图像或帧相比,压缩视频帧和/或图像具有减少的比特数。解码器能够被用于对压缩帧和/或图像进行解压缩,以重建原始视频帧和/或图像。一些编码器能够使用编码器/解码器标准(例如,AVC、H.264、MPEG-4等)。
发明内容
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:基于包括至少一个视频帧的接收到的视频流生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的,确定关键帧是否被存储在接收设备处,基于关键帧是否被存储在接收设备处,选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个,并且传送视频数据和帧间预测帧中的至少一个。
在一般方面,流式传输设备包括:控制器,其被配置成确定关键帧是否被存储在接收设备处;选择电路,其被配置成基于确定关键帧是否被存储在接收设备处来选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个;以及发射器,其被配置成传送视频数据和帧间预测帧中的至少一个。
在一般方面,编码器包括:压缩帧生成器,其被配置成基于包括至少一个帧的接收到的视频流生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的;控制器,其被配置成确定关键帧是否被存储在接收设备处,选择电路,其被配置成基于关键帧是否被存储在接收设备处而选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个;以及发射器,其被配置成传送视频数据和帧间预测帧中的至少一个。
实施方式能够包括一个或多个以下特征。例如,帧间预测帧能够是前向预测帧或双向预测帧中的一个。该方法能够进一步包括存储与至少一个关键帧相关联的信息。确定关键帧是否被存储在接收设备处能够包括确定视频输入包括关键帧标识符。确定关键帧是否被存储在接收设备处能够包括确定关键帧是用户界面的图形元素,并且关键帧标识符与用户界面的图形元素相关联。确定关键帧是否被存储在接收设备处能够包括比较与关键帧相关联的至少一个像素颜色,并且确定关键帧存储在接收设备处中的一项基于颜色差值标准或者基于至少一个像素颜色的比较的均方误差计算。确定关键帧是否被存储在接收设备处能够包括基于关键帧生成直方图,并将生成的直方图与存储的直方图进行比较。
确定关键帧是否被存储在接收设备处能够包括基于关键帧生成签名,并将所生成的签名与存储的签名进行比较。确定关键帧是否被存储在接收设备处能够包括使用经训练的机器学习模型基于关键帧生成至少一个对象分类和对象位置,并且将该至少一个对象分类和对象位置与跟存储在接收设备处的关键帧相关联的存储的对象分类和对象位置进行比较。如果关键帧没有被存储在接收设备中,则该方法能够进一步包括生成对应于关键帧的关键帧标识符,并且使得关键帧和关键帧标识符被传送到接收设备。
该流式传输设备能够接收包括至少一个帧的视频流,并且能够进一步包括编码器,该编码器被配置成基于该至少一个帧生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的。该流式传输设备能够进一步包括被配置成存储与至少一个关键帧相关联的信息的存储器。
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:接收包括视频数据和帧间预测帧中的至少一个的视频流,视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个,基于该视频数据选择关键帧或存储的关键帧中的一个,并且基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
在一般方面,回放设备包括:接收器,其被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,该视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个;以及选择电路,其被配置成基于该视频数据选择关键帧或存储的关键帧中的一个。
在一般方面,回放设备包括:接收器,其被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,该视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个;以及解码器,其包括选择电路和解压缩模块,该选择电路被配置成基于视频数据选择关键帧或存储的关键帧中的一个,并且该解压缩模块被配置成基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
实施方式能够包括一个或多个以下特征。例如,该方法能够进一步包括从包括至少一个存储的关键帧的库中选择存储的关键帧。该方法能够进一步包括确定视频数据是否包括关键帧和关键帧标识符,并且响应于确定视频数据包括关键帧和关键帧标识符,将与关键帧标识符相关的关键帧存储在关键帧库中。该方法能够进一步包括确定视频数据是否包括关键帧而没有关键帧标识符,并且响应于确定视频数据包括关键帧而没有关键帧标识符,生成关键帧标识符,并且将与关键帧标识符相关的关键帧存储在关键帧库中。
该方法能够进一步包括确定视频数据是否包括关键帧标识符而没有关键帧,并且响应于确定视频数据包括关键帧而没有关键帧标识符,基于关键帧标识符从关键帧库中读取关键帧。该方法能够进一步包括:响应于确定视频数据包括关键帧标识符而没有关键帧,确定视频数据是否包括关键帧标识符或关键帧中的一个;基于关键帧标识符从关键帧库中读取关键帧;并且使得选择从关键帧库中读取的关键帧;以及响应于确定视频数据包括关键帧而没有关键帧标识符,使得选择视频数据中包括的关键帧。
回放设备能够进一步包括解码器,该解码器被配置成基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。该回放设备能够进一步包括控制器,该控制器被配置成使得选择电路基于视频数据和包括至少一个存储的关键帧的库来选择关键帧或存储的关键帧中的一个。
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:基于包括至少一个视频帧的接收到的视频流生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的,确定关键帧是否被存储在接收设备处,基于关键帧是否被存储在接收设备处,选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个,传送视频数据和帧间预测帧中的至少一个,接收包括视频数据和帧间预测帧中的至少一个的视频流,基于该视频数据选择关键帧或存储的关键帧中的一个,并且基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
附图说明
从下面给出的详细描述和附图中,示例实施例将变得更加被充分理解,其中相同的元件由相同的附图标记表示,这些附图仅通过说明给出,因此并不限制示例实施例,其中:
图1A图示了根据至少一个示例实施例的信号流的框图。
图1B图示了根据至少一个示例实施例的流式传输视频的帧的框图。
图2A图示了根据至少一个示例实施例的发送器系统的框图。
图2B图示了根据至少一个示例实施例的另一发送器系统的框图。
图3A图示了根据至少一个示例实施例的接收器系统的框图。
图3B图示了根据至少一个示例实施例的另一接收器系统的框图。
图4A图示了根据至少一个示例实施例的编码器系统的框图。
图4B图示了根据至少一个示例实施例的解码器系统的框图。
图5图示了根据至少一个示例实施例的流式传输视频的方法的流程图。
图6图示了根据至少一个示例实施例的解码视频的方法的流程图。
图7图示了根据至少一个示例实施例的计算机设备和移动计算机设备的示例。
应当注意,这些附图旨在图示某些示例实施例中使用的方法和/或结构的一般特征,并补充下面提供的书面描述。然而,这些附图不是按比例绘制的,并且可能没有精确地反映任何给定实施例的精确结构或性能特征,并且不应该被解释为限定或限制示例实施例所涵盖的值或属性的范围。例如,为了清楚,层、区域和/或结构元件的相对厚度和定位可以被减小或放大。在各个附图中使用相似或相同的附图标记旨在表示相似或相同的元件或特征的存在。
具体实施方式
视频编码能够利用相邻帧中的帧内容的基本相似性来实现仅对连续视频帧之间的差值而不是完整图像内容进行代码化。这种方法尤其适用于从一帧到下一帧的连续运动和/或场景内容。散布在不同帧之间的是完整的图像帧。例如,当场景不连续地变化时,或者作为周期性或偶然的参考设置帧,可以使用这些帧。在视频编码的术语中,完整(或大部分)完整图像帧被称为帧内编码帧,包括关键帧和/或I帧(以下称为关键帧)。能够使用两种类型的差值帧,称为帧间预测帧,包括预测帧或P帧和双向帧或B帧。在视频回放的场境下,每个帧可以包括时间戳,以指定帧序列中的时间顺序。每个关键帧可以是表示视频中的时刻的基本上完整的数字图像。另一方面,帧间预测帧可以定义相对于一个或多个其他帧的变化(例如,作为残差),诸如来自关键帧和/或其他帧的向量位移。视频显示设备可以在其时间戳时刻呈现每个关键帧,并且然后可以根据或使用连续关键帧之间的帧间预测帧渲染对所呈现的图像的改变。结果可以在显示设备上表现为平滑的运动。
在视频压缩中,关键帧能够是完全指定的帧,类似于传统的静态图像文件。因此,与视频压缩中使用的其他帧不同,关键帧被代码化而不参考任何其他帧。结果,关键帧能够比非关键帧大(例如,没有被压缩得那么多)。
视频压缩技术(例如AVC、H.264、MPEG-4等)的预期用途中的一个能够是减少通过信道传输的数据量。信道能够是从一个部件到另一部件的通信路径。该信道能够是印刷电路板(PCB)上的电迹线、光纤中的光路或者使用例如WiFi或蓝牙的无线电路径。通过信道传输较少的数据能够允许信道以较低的功率、较低的速度、较低的复杂度和/或较低的成本工作。关键帧通过信道的传输能够包括通过信道传输不期望的(例如,增加的)数据量(与帧间预测帧相比)。
示例实施方式能够减少与通过信道传输视频的关键帧相关联的数据量。例如,当视频包括重复的关键帧(例如,固定安防摄像头视频、具有恒定背景的演示视频、具有背景过滤器的视频会议呼叫、在智能眼镜的菜单系统中等)时,关键帧能够被替换成标识关键帧的标识值。然后,视频显示设备能够调用(例如,从存储器、从库等)对应于标识值的存储的关键帧,以用于解压缩帧和显示视频。标识值和存储的关键帧的使用能够减少与通过信道传输视频的关键帧相关联的数据量。
图1A图示了根据至少一个示例实施例的信号流的框图。如图1A所示,信号流100包括发送器105和接收器115。发送器105和接收器115能够通过信道125通信地耦合。发送器105能够包括编码器110,并且接收器115能够包括解码器120。发送器105和接收器115能够被被配置成一起工作以减少与通过信道125传输视频的关键帧相关联的数据量。信道125能够是印刷电路板(PCB)上的电迹线、光纤中的光路或者使用例如WiFi或蓝牙的无线电路径。
在示例实施方式中,发送器105能够是流式传输设备,接收器115可以是回放设备。编码器110能够被配置成基于视频流生成关键帧和帧间预测帧中的至少一个。这里,在示例实施方式中,视频流能够包括多个帧,这些帧能够都具有相同的分辨率,并且理论上能够都被用作关键帧。
帧间预测帧能够是前向预测帧和/或双向预测帧中的一种。发送器105,例如流式传输设备的控制器,和/或编码器110能够被配置成确定关键帧是否被存储在接收设备115处,并且基于该关键帧是否被存储在接收设备115处来选择视频数据作为关键帧或表示关键帧的数字值中的一个。换句话说,发送器105能够被配置成流式传输视频帧,而不传送关键帧(例如,使用关键帧标识符来代替关键帧)。接收器115能够被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,视频数据能够是关键帧或表示关键帧的数字值中的一个。接收器115能够被配置成基于视频数据选择关键帧或存储的关键帧中的一个。解码器120能够被配置成基于关键帧、存储的关键帧和帧间预测帧中的至少一个来生成用于在回放设备上显示的视频帧。
发送器105能够包括编码器110和接口发射器,该接口发射器能够被包括作为视频压缩(例如,AVC、H.264、MPEG-4等)实施方式中的元件。另外,示例实施方式能够包括控制和选择电路(以下称为多路复用器)部件。控制器能够被配置成标识存在于接收器的存储器中的关键帧。关键帧标识可以包括将关键帧与已知关键帧进行比较或者通过显示系统的功能进行比较(例如,显示的菜单能够是用户界面的开始)。多路复用器能够被配置成将关键帧标识符插入到通信流中(例如,如果匹配的关键帧被标识)。
接收器115能够包括接口接收器和解码器120,其能够被包括作为视频压缩(例如,AVC、H.264、MPEG-4等)实施方式中的元件。另外,示例实施方式能够包括关键帧库、控制器和多路复用器。通过使用多路复用器,控制器能够被配置成在帧间帧和从关键帧库中检索的关键帧之间进行选择。图1B图示了根据至少一个示例实施例的流式传输视频的帧的框图。如图1B所示,流式传输视频能够是流式传输(例如,传送)的视频的帧,而不传送关键帧。图1B被图示为包括至少一个关键帧标识符和至少一个帧间预测帧。图2A和图2B更详细地描述了发送器105和编码器110。图3A和图3B更详细地描述了接收器115和解码器120。
图2A图示了根据至少一个示例实施例的发送器系统的框图。如图2A所示,发送器105包括编码器110、控制器205、存储器210、多路复用器215和接口/发射器220。存储器210可以是也可以不是控制器205的图形元件。图2B图示了根据至少一个示例实施例的另一发送器系统的框图。如图2B所示,发送器105包括编码器110和接口/发射器220。编码器110包括控制器205、存储器210、多路复用器215和压缩帧生成器225。图2A和图2B的示例实施方式之间的区别在于,在图2B中,控制器205、存储器210和多路复用器215被包括在编码器110中。而在图2A中,控制器205、存储器210和多路复用器215不被包括在编码器110中。
编码器110能够被配置成压缩视频5(例如,流式传输视频、用户界面交互(例如,菜单的)、监控视频等)的多个帧。替代地,压缩帧生成器225能够被配置成压缩视频5的多个帧。多个压缩帧10能够包括至少一个关键帧和至少一个帧间预测帧。发送器105能够被配置成一次处理(例如,压缩和/或传送)视频5的一帧。
控制器205能够被配置成确定多个压缩帧10中的一个是否为关键帧,并且确定该关键帧是否存在于接收器115的存储器中。确定多个压缩帧10中的一个是否为关键帧能够包括读取与该帧相关联的标签。如果该帧是关键帧,标签将指示该帧是关键帧。替代地,多个压缩帧10中的一个帧能够在控制器205已知的规则(例如,帧数、时间间隔等)基础上被压缩为关键帧。替代地,视频5中的第一帧能够被压缩为关键帧。例如,(例如,菜单的)用户界面交互能够是短视频序列(如视频5),每个短视频能够利用第一帧被压缩作为关键帧。
确定关键帧是否存在于接收器115的存储器中能够包括将关键帧与已知关键帧进行比较或者通过显示系统的功能进行比较(例如,显示的菜单能够是用户界面的开始)。例如,该比较能够是逐像素比较。该逐像素比较能够包括读取关键帧的像素的像素颜色,以及读取在相同坐标处存储的关键帧的像素的像素颜色,并比较像素颜色。如果每个坐标(或坐标的阈值百分比)处的颜色相同(或在阈值差值内),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。存储的关键帧能够被包括在存储器210中。存储器210中的存储的关键帧也能够在接收器115的存储器(例如,库)中。
该比较能够是像素颜色(例如,红色、绿色、蓝色)差值比较。像素颜色差值能够包括对关键帧的每个像素的像素值求和,对存储的关键帧的每个像素的像素值求和,并计算差值。如果差值满足标准(例如,小于阈值),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。像素颜色差值能够基于每种颜色和/或所有颜色的组合。
该比较能够是像素颜色(例如,红色、绿色、蓝色)直方图比较。像素颜色直方图能够包括为关键帧的每个像素颜色生成像素直方图,为存储的关键帧的每个像素颜色生成像素直方图,并计算差值。如果直方图满足标准(例如,小于每种颜色的阈值差值),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。
该比较能够是帧图像签名(或数字签名、签名值等)比较。签名能够是对图像的像素颜色值应用函数的结果。应用该函数应该产生对应于基本上唯一的图像的唯一签名。因此,如果两个关键帧具有相同的签名,则这两个关键帧应该匹配。签名比较能够包括生成关键帧的签名和生成存储的关键帧的签名并计算差值。如果比较签名满足标准(例如,签名值相同),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复这个过程。
该比较能够是基于两帧图像的均方误差(MSE)计算。MSE计算能够是两帧图像之间的平方差之和。像素颜色MSE能够包括基于关键帧和存储的关键帧生成MSE计算。如果MSE满足标准(例如,小于阈值),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。MSE能够基于每种颜色和/或所有颜色的组合。
该比较能够使用经训练的机器学习(ML)模型。经训练的ML模型能够对帧图像中的对象和对象位置进行分类。因此,如果两个关键帧具有对象和位置(例如,在帧图像内)分类,则这两个关键帧匹配。ML模型比较能够包括为关键帧生成对象和位置分类,以及为存储的关键帧生成对象和位置分类。如果比较对象和位置分类满足标准(例如,对象和位置分类值相同),则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。
该比较能够是帧图像纹理比较。帧图像纹理比较能够基于上述比较的任一种。然而,代替基于像素颜色的比较,该比较能够基于像素纹理。该比较能够是水印比较。例如,关键帧能够包括唯一的水印(例如,对于视频中的每个关键帧都不同的不可见数字结构)。如果水印相同,则关键帧和存储的关键帧匹配。能够对每个存储的关键帧重复该过程。
在上述示例实施方式中的每一个中,比较的结果可能不是精确匹配。例如,导致两个关键帧在标准(例如,阈值差值)内匹配的指示的比较能够导致确定关键帧是匹配的。该标准能够基于重建的图像或帧的结果质量来确定。在该示例实施方式中,生成帧间预测帧能够使用存储的关键帧来代替(例如,替换)当前(例如,与流式传输视频相关联的)关键帧。此外,示例实施方式能够包括未编码的关键帧和/或编码的(压缩)关键帧的比较。
替代地,视频5能够包括关键帧标识符,而不是关键帧图像。如果视频5使用关键帧标识符,则存储的关键帧能够包括相关联的关键帧标识符。这些存储的包括相关联的关键帧标识符的关键帧能够被预安装在接收器115的存储器中。这些包括相关联的关键帧标识符的存储的关键帧能够在通信地耦合到接收器115的网络设备的存储器中。在该实施方式中,接收器115能够基于例如视频、应用、用户界面等从网络设备请求存储的关键帧,或者从网络设备请求具有相关联的关键帧标识符的多个关键帧。
在示例实施方式中,存储器210能够包括关键帧标识符,而不是关键帧图像。例如,存储器210能够包括签名、直方图、水印等作为表示关键帧图像的关键帧标识符。因此,关键帧比较能够基于生成当前关键帧的签名、直方图、水印等,并将结果与存储在存储器210中的签名、直方图、水印等进行比较。其他帧图像比较技术也在本公开的范围内。
控制器205能够输出关键帧标识符,或者关键帧和相关联的关键帧标识符作为关键帧数据15。另外,控制器205能够输出控制信号20。多路复用器215能够输出视频数据25。多路复用器215能够基于控制信号20输出视频数据25。控制信号20能够使多路复用器215在压缩帧10或关键帧数据15之间进行选择。换句话说,视频数据25能够是帧间预测帧或关键帧数据15(例如,关键帧标识符或关键帧/关键帧标识符组合)。接口/发射器220能够被配置成基于编码器/解码器标准(例如,AVC、H.264、MPEG-4和/或类似标准)格式化视频数据25以用于通信,并且通过信道125传送格式化后的视频数据30。
图3A图示出根据至少一个示例实施例的接收器系统的框图。如图3A所示,接收器115包括接口/接收器305、关键帧库310、控制器315、多路复用器320和解码器120。图3B图示了根据至少一个示例实施例的另一接收器系统的框图。如图3B所示,接收器115包括接口/接收器305和解码器120。解码器120包括关键帧库310、控制器315和多路复用器320。图3A和图3B的示例实施方式之间的区别在于,在图3B中,控制器315、存储器310和多路复用器320被包括在解码器120中。而在图3A中,控制器315、存储器310和多路复用器320不被包括在解码器120中。
接口/接收器305能够被配置成经由信道125接收格式化后的视频数据30,并且基于格式化后的视频数据30生成视频数据35。视频数据35能够是帧间预测帧或关键帧数据(例如,关键帧标识符或关键帧/关键帧标识符组合)。
控制器315能够被配置成确定视频数据35是否包括关键帧和/或关键帧标识符。如果视频数据35包括关键帧和/或关键帧标识符,则控制器315能够被配置成确定关键帧库310是否包括关键帧。例如,视频数据35可以仅包括关键帧标识符。在这种情况下,关键帧库310应该包括关键帧,并且控制器能够使关键帧库310基于关键帧标识符传送关键帧45。
如果视频数据35包括关键帧和关键帧标识符,则控制器315能够被配置成使得关键帧库310存储与关键帧标识符相关的关键帧。此外,控制器315能够输出控制信号40。多路复用器320能够输出压缩视频数据50。多路复用器215能够基于控制信号40输出压缩视频数据50。控制信号40能够使多路复用器320在视频数据35或关键帧45之间进行选择。换句话说,压缩视频数据50能够是帧间预测帧或关键帧45。解码器120和/或解压缩模块325能够被配置成通过使用用于生成压缩帧10的相同编码器/解码器标准来解压缩压缩视频数据50,以生成视频5(作为重建视频)。
关键帧库310能够包括解码视频流所需的关键帧。关键帧库310能够被实现在ROM、SRAM或一些其他永久或临时存储装置中。关键帧库310中能够被预加载将在系统中使用的关键帧。关键帧库能够在设计阶段(ROM)期间由接收器115加载(例如,从网络设备读取),如经由信道125从发送器105接收的。
图4A图示了根据至少一个示例实施例的编码器系统。如图4A所示,编码器系统400包括至少一个处理器405、至少一个存储器410、控制器420和编码器110。至少一个处理器405、至少一个存储器410、控制器420和编码器110经由总线415通信地耦合。
在图4A的示例中,编码器系统400可以是或包括至少一个计算设备,并且应当被理解为代表被配置成执行本文中描述的技术的几乎任何计算设备。这样,编码器系统400可以被理解为包括可用于实现本文中描述的技术或其不同或未来版本的各种部件。作为示例,编码器系统400被图示为包括至少一个处理器405,以及至少一个存储器410(例如,非暂时性计算机可读存储介质)。
至少一个处理器405可以被用于执行存储在至少一个存储器410上的指令。因此,至少一个处理器405能够实现本文中描述的各种特征和功能,或者另外的或替代的特征和功能。至少一个处理器405和至少一个存储器410可以被用于各种其他目的。例如,至少一个存储器410可以表示各种类型的存储器和相关硬件和软件的示例,其可以被用于实现这里描述的任何一个模块。
至少一个存储器410可以被配置成存储与编码器系统400相关联的数据和/或信息。至少一个存储器410可以是共享资源。例如,编码器系统400可以是更大系统(例如,服务器、个人计算机、移动设备等)的元件。因此,至少一个存储器410可以被配置成存储与较大系统内的其他元件(例如,图像/视频服务、网页浏览或有线/无线通信)相关联的数据和/或信息。
控制器420可以被配置成生成各种控制信号并将控制信号传送给编码器系统400中的各种块。控制器420可以被配置成生成控制信号来实现本文中所述的技术。根据示例实施方式,控制器420可以被配置成控制编码器110对图像、图像序列、视频帧、视频帧序列等进行编码。例如,控制器420可以生成对应于选择编码模式的控制信号。
编码器110可以被配置成接收输入图像5(和/或视频流)并输出压缩(例如,编码的)比特10。编码器110可以将视频输入转换成离散视频帧(例如,作为图像)。输入图像5可以被压缩(例如,编码)为压缩图像比特。编码器110可以进一步将每个图像(或离散视频帧)转换成块或宏块(以下称为块)的C×R矩阵。例如,图像可以被转换成32×32、32×16、16×16、16×8、8×8、4×8、4×4或2×2的块矩阵,每个块具有多个像素。虽然列出了八(8)个示例矩阵,但是示例实施方式不限于此。此外,编码器110可以被配置成(和/或被包括在被配置成如下操作的系统中)在没有关键帧的情况下和/或使用至少一个关键帧标识符来代替至少一个关键帧流式传输视频。
压缩比特10可以表示编码器系统400的输出。例如,压缩比特10可以表示编码图像(或视频帧)。例如,压缩比特10可以被存储在存储器(例如,至少一个存储器410)中。例如,压缩比特10可以准备好传输到接收设备(未示出)。例如,压缩比特10可以被传输到系统收发器(未示出),以用于传输到接收设备。
至少一个处理器405可以被配置成执行与控制器420和/或编码器110相关联的计算机指令。至少一个处理器405可以是共享资源。例如,编码器系统400可以是更大系统(例如,移动设备、服务器等)的元件。因此,至少一个处理器405可以被配置成执行与较大系统内的其他元件(例如,图像/视频服务、网页浏览或有线/无线通信)相关联的计算机指令。
图4B图示了根据至少一个示例实施例的解码器系统的框图。如图4B所示,解码器系统450包括至少一个处理器455、至少一个存储器460、控制器470和解码器120。至少一个处理器455、至少一个存储器460、控制器470和解码器120经由总线465通信地耦合。
在图4B的示例中,解码器系统450可以是至少一个计算设备,并且应当被理解为表示被配置成执行本文中描述的技术的几乎任何计算设备。这样,解码器系统450可以被理解为包括可以被用于实现本文中描述的技术或其不同或未来版本的各种部件。例如,解码器系统450被图示为包括至少一个处理器455,以及至少一个存储器460(例如,计算机可读存储介质)。
因此,至少一个处理器455可以被用于执行存储在至少一个存储器460上的指令。这样,至少一个处理器455能够实现本文中描述的各种特征和功能,或者另外的或替代的特征和功能。至少一个处理器455和至少一个存储器460可以被用于各种其他目的。例如,至少一个存储器460可以被理解为表示各种类型的存储器和相关硬件和软件的示例,其能够被用于实现本文中描述的任何一个模块。根据示例实施方式,编码器系统400和解码器系统450可以被包括在同一个更大的系统(例如,个人计算机、移动设备等)中。
至少一个存储器460可以被配置成存储与解码器系统450相关联的数据和/或信息。至少一个存储器460可以是共享资源。例如,解码器系统450可以是更大系统(例如,个人计算机、移动设备等)的元件。因此,至少一个存储器460可以被配置成存储与更大系统内的其他元件(例如,网页浏览或无线通信)相关联的数据和/或信息。
控制器470可以被配置成生成各种控制信号并将该控制信号传送到解码器系统450中的各种块。控制器470可以被配置成生成控制信号,以便实现本文中描述的视频编码/解码技术。根据示例实施方式,控制器470可以被配置成控制解码器120解码视频帧。
解码器120可以被配置成接收压缩(例如,编码的)比特10作为输入,并输出图像5。压缩(例如,编码的)比特10也可以表示压缩视频比特(例如,视频帧)。因此,解码器120可以将压缩比特10的离散视频帧转换成视频流。解码器120能够被配置成(和/或被包括在被配置成进行以下操作的系统中)解压缩(例如,解码)没有关键帧和/或包括代替至少一个关键帧的至少一个关键帧标识符的传送的流式传输视频。
至少一个处理器455可以被配置成执行与控制器470和/或解码器120相关联的计算机指令。至少一个处理器455可以是共享资源。例如,解码器系统450可以是更大系统(例如,个人计算机、移动设备等)的元件。因此,至少一个处理器455可以被配置成执行与更大系统内的其他元件(例如,网页浏览或无线通信)相关联的计算机指令。
未压缩视频流(例如,视频5)能够被输入到发送器105中的编码器110。编码器110能够根据视频压缩标准(例如,AVC、H.264、MPEG-4等)来处理每个帧(例如,图像)。控制器(例如,控制器205)能够确定关键帧是否在关键帧库(例如,关键帧库310)中。控制器能够通过例如确定回放设备上的显示器将使用标准图像作为关键帧、将压缩关键帧与已知的关键帧库内容进行比较,来确定是使用压缩关键帧还是关键帧标识符。
一旦知道了关键帧标识符,就能够使用多路复用器(例如,多路复用器215)在发送器105的传输流中注入关键帧选择信息(例如,关键帧、关键帧标识符等)。关键帧标识符能够是字节量级,而压缩关键帧能够是几千字节或几兆字节量级。示例能够减少(甚至消除)压缩关键帧的传输。
控制器(例如,控制器315)能够监控接收到的视频数据。当接收到关键帧标识符时,控制器能够从关键帧库中选择并提供关键帧数据(例如,压缩关键帧)。多路复用器(例如,多路复用器320)能够被用于在接收的视频数据流(例如,B帧和P帧)和关键帧库内容(例如,压缩I帧)之间切换。解码器(例如,解码器120)能够根据视频解压缩标准(例如,AVC、H.264、MPEG-4等)来处理视频数据流。
在关键帧不被包括在关键帧库中的情况下,关键帧能够由接收器115处理并被存储在关键帧库中。如果在发送器中检测到具有未存储的关键帧的视频流,则该关键帧能够被传输,随后是帧间预测帧(例如,B帧和/或P帧),并被处理。新的关键帧能够被复制并存储在关键帧库中(例如,如果期望重新使用)。图5更详细地描述了发送器(例如,发送器105)的操作,图6更详细地描述了接收器(例如,接收器115)的操作。
图5图示了根据至少一个示例实施例的流式传输视频的方法的流程图。如图5所示,在步骤S505中,接收流式传输视频。例如,视频(例如,视频5)能够是流式传输视频、用户界面交互(例如,菜单的)、监控视频等。
在步骤S510中,使用流式传输视频的帧生成压缩帧。例如,编码器(例如,编码器110)能够使用编码器/解码器标准(例如,AVC、H.264、MPEG-4等)来压缩流式传输视频的每一帧。压缩帧能够是帧内编码帧或帧间预测帧。帧内预测帧能够包括关键帧和/或I帧。帧间预测帧能够包括预测帧或P帧以及双向帧或B帧。因此,编码器能够生成(例如,输出)帧内预测帧(例如,关键帧和/或I帧)和/或帧间预测帧(例如,P帧和/或B帧)。在一些实施方式中,帧内预测帧(例如,关键帧和/或I帧)能够是引用关键帧或I帧的关键帧标识符。
在步骤S515中,确定该帧是否为关键帧。例如,压缩帧能够包括将该帧标识为关键帧(或I帧)的标签。替代地,该帧能够是关键帧标识符,而不是图像帧。基于标签和/或关键帧标识符,能够确定该帧是关键帧。如果该帧是关键帧,则处理继续到步骤S520。否则,如果该帧不是关键帧,则处理继续到步骤S540。
在步骤S520中,确定关键帧是否被存储在存储器中。例如,存储器能够包括多个关键帧和/或关键帧标识符。确定关键帧是否被存储在存储器中能够包括确定关键帧和/或关键帧标识符是否与存储在存储器中的多个关键帧和/或关键帧标识符中的一个相匹配。如果关键帧被存储在存储器中,则处理继续到步骤S525。否则,如果关键帧没有被存储在存储器中,则处理继续到步骤S525。
确定关键帧是否被存储在存储器(例如,存储器210和/或关键帧库310)中能够包括将关键帧与已知关键帧进行比较或者通过显示系统的功能进行比较(例如,显示的菜单能够是用户界面的开始)。例如,该比较能够是逐像素的比较。逐像素能够可以包括读取关键帧的像素的像素颜色,以及读取在相同坐标处存储的关键帧的像素的像素颜色,并比较像素颜色。如果每个坐标(或坐标的阈值百分比)处的颜色相同(或在阈值差值内),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。
该比较能够是像素颜色(例如,红色、绿色、蓝色)差值比较。像素颜色差值能够包括对关键帧的每个像素的像素值求和,对存储的关键帧的每个像素的像素值求和,并计算差值。如果差值满足标准(例如,小于阈值),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。像素颜色差值能够基于每种颜色和/或所有颜色的组合。
该比较能够是像素颜色(例如,红色、绿色、蓝色)直方图比较。像素颜色直方图能够包括为关键帧的每个像素颜色生成像素直方图,为存储的关键帧的每个像素颜色生成像素直方图,并计算差值。如果直方图满足标准(例如,小于每种颜色的阈值差值),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。
该比较能够是帧图像签名(或数字签名、签名值等)比较。签名能够是对图像的像素颜色值应用函数的结果。应用该函数应该产生对应于基本上唯一的图像的唯一签名。因此,如果两个关键帧具有相同的签名,则这两个关键帧应该匹配。签名比较能够包括生成关键帧的签名和生成存储的关键帧的签名并计算差值。如果比较签名满足标准(例如,签名值相同),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。
该比较能够基于两帧图像的均方误差(MSE)计算。MSE计算能够是两帧图像之间的平方差之和。像素颜色MSE能够包括基于关键帧和存储的关键帧生成MSE计算。如果MSE满足标准(例如,小于阈值),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。MSE能够基于每种颜色和/或所有颜色的组合。
该比较能够使用经训练的机器学习(ML)模型。经训练的ML模型能够对帧图像中的对象和对象位置进行分类。因此,如果两个关键帧具有对象和位置(例如,在帧图像内)分类,则这两个关键帧匹配。ML模型比较能够包括为关键帧生成对象和位置分类,以及为存储的关键帧生成对象和位置分类。如果比较对象和位置分类满足标准(例如,对象和位置分类值相同),则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。
该比较能够是帧图像纹理比较。帧图像纹理比较能够基于任何上述比较。然而,代替基于像素颜色的比较,该比较能够基于像素纹理。该比较能够是水印比较。例如,关键帧能够包括唯一的水印(例如,对于视频中的每个关键帧都不同的不可见数字结构)。如果水印相同,则关键帧和存储的关键帧相匹配。能够对每个存储的关键帧重复该过程。
替代地,视频(例如,视频5)能够包括关键帧标识符,而不是关键帧图像。如果视频使用关键帧标识符,则存储的关键帧能够包括相关联的关键帧标识符。包括相关联的关键帧标识符的这些存储的关键帧能够被预安装在回放设备(例如,接收器115)的存储器中。包括相关联的关键帧标识符的这些存储的关键帧能够在通信地耦合到回放设备的网络设备的存储器中。在该实施方式中,回放设备能够基于,例如,视频、应用、用户界面等,向网络设备请求存储的关键帧,或者向网络设备请求具有相关联的关键帧标识符的多个关键帧。回放设备能够是电视、移动电话、计算机监视器、增强现实耳机等等。
在示例实施方式中,存储器能够包括关键帧标识符,而不是关键帧图像。例如,存储器能够包括签名、直方图、水印等作为表示关键帧图像的关键帧标识符。因此,关键帧比较能够基于生成当前关键帧的签名、直方图、水印等,并将结果与存储在存储器中的签名、直方图、水印等进行比较。其他帧图像比较技术也在本公开的范围内。
在步骤S525中,确定帧表示。例如,帧表示能够是关键帧标识符。关键帧标识符能够是数值(例如,当关键帧被添加到存储器时顺序创建的)、签名、直方图、水印等。
在步骤S530中,传送该帧表示。例如,当关键帧被存储在回放设备的存储器(例如,关键帧库310)中时,代替传送压缩关键帧(或I帧),能够在压缩视频流中传送关键帧标识符。关键帧标识符能够基于编码器/解码器标准(例如,AVC、H.264、MPEG-4等)被格式化用于通信,并且被传送(例如,经由信道125)。
在步骤S535中,存储帧和/或帧表示。例如,如果帧是没有被存储在存储器中的关键帧,则帧和/或帧表示能够被存储在存储器(例如,存储器210)中。帧和/或帧表示被存储在存储器中,以便下一次关键帧出现在视频流中时,关键帧表示在压缩视频流中被传送。
在步骤S540中,传送帧和/或帧表示。例如,帧间预测帧(例如,非关键帧、P帧、B帧等)。帧间预测帧能够基于编码器/解码器标准(例如,AVC、H.264、MPEG-4等)格式化以用于通信(例如,作为视频数据25),并且被传送(例如,经由信道125)。如果该帧是没有被存储在回放设备的存储器(例如,关键帧库310)中的关键帧,则压缩关键帧(例如,作为视频数据25)能够基于编码器/解码器标准被格式化以用于通信,并且被传送(例如,经由信道125)。如果该帧是在未压缩视频流中接收的关键帧标识符,则该关键帧标识符(例如,作为视频数据25)能够基于编码器/解码器标准被格式化以用于通信,并且被传送(例如,经由信道125)。在一些实施方式中,关键帧标识符与压缩关键帧一起被传送。
图6图示了根据至少一个示例实施例的解码视频的方法的流程图。如图6所示,在步骤S605中,接收流式传输视频数据。例如,压缩视频(例如,视频30)能够是压缩的(或编码版本的流式传输视频、用户界面交互(例如,菜单的)、监控视频等。流式传输视频能够基于编码器/解码器标准(例如,AVC、H.264、MPEG-4等)被格式化数据以用于通信。压缩视频数据能够包括帧间预测帧(例如,非关键帧、P帧、B帧等)、帧内预测帧(例如,关键帧或I帧)和/或表示关键帧的数据(例如,关键帧标识符)中的至少一个。
在步骤S610中,确定视频数据的帧是否为压缩帧(例如,要被解压缩的当前帧)。例如,视频数据的帧能够是作为关键帧或帧间预测帧或关键帧标识符的帧图像。如果该帧是关键帧标识符,则视频数据的帧不是压缩帧。如果视频数据的帧是压缩帧,则处理继续到步骤S615。否则,如果视频数据的帧不是压缩帧,则处理继续到步骤S630。
在步骤S615中,确定该帧是否为关键帧。例如,压缩帧能够包括将该帧标识为关键帧(或I帧)的标签。替代地,该帧能够包括压缩帧和关键帧标识符。基于标签和/或关键帧标识符,能够确定该帧是关键帧。如果该帧是关键帧,则处理继续到步骤S620。否则,如果该帧不是关键帧,则处理继续到步骤S625。
在步骤S620中,存储帧和/或帧表示。例如,如果帧是没有被存储在存储器中的关键帧,则帧和/或帧表示能够被存储在关键帧库(例如,关键帧库310)中。帧和/或帧表示被存储在关键帧库中,使得下一关键帧作为关键帧标识符出现在压缩视频流中时,能够基于关键帧标识符从关键帧库中检索关键帧。
在步骤S625中,帧被解压缩。例如,能够使用用于生成压缩帧的相同编码器/解码器标准(例如,AVC、H.264、MPEG-4等)来解压缩压缩帧。
在步骤S630中,标识关键帧。例如,能够基于关键帧标识符在关键帧库中查找(例如,搜索)关键帧。在步骤S635中,检索关键帧。例如,能够从关键帧库中读取关键帧。
图7示出了计算机设备700和移动计算机设备750的示例,其可以与这里描述的技术一起使用。计算设备700旨在表示各种形式的数字计算机,诸如笔记本计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备750旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里所示的部件、它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制该文档中描述和/或要求保护的发明的实施方式。
计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口710的高速接口708、以及连接到低速总线714和存储设备706的低速接口712。部件702、704、706、708、710和712中的每一个使用各种总线互连,并且可以被安装在公共主板上或者酌情以其他方式被安装。处理器702能够处理用于在计算设备700内执行的指令,包括存储在存储器704中或存储设备706上的指令,以在外部输入/输出设备,诸如耦合到高速接口708的显示器716,上显示GUI的图形信息。在其他实施方式中,可以酌情使用多个处理器和/或多个总线,以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备700,每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器系统)。
存储器704存储计算设备700内的信息。在一个实施方式中,存储器704是一个或多个易失性存储单元。在另一实施方式中,存储器704是一个或多个非易失性存储单元。存储器704也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备706能够为计算设备700提供大容量存储。在一个实施方式中,存储设备706可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备、或设备阵列,包括存储区域网络中的设备或其他配置。计算机程序产品能够被有形地体现在信息载体中。计算机程序产品还可以包含指令,当被执行时,这些指令执行一种或多种方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器704、存储设备706或处理器702上的存储器。
高速控制器708管理计算设备700的带宽密集型操作,而低速控制器712管理较低带宽密集型操作。这种功能的分配仅是示例性的。在一个实施方式中,高速控制器708被耦合到存储器704、显示器716(例如,通过图形处理器或加速器),并且被耦合到高速扩展端口710,高速扩展端口710可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器712被耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备700可以以多种不同的形式实现。例如,它可以被实现为标准服务器720,或者在这样的服务器组中多次实现。它也可以被实现为机架式服务器系统724的一部分。另外,它可以在诸如笔记本计算机722的个人计算机中实现。替代地,来自计算设备700的部件可以与诸如设备750的移动设备(未示出)中的其他部件组合。这样的设备中的每一个可以包含一个或多个计算设备700、750,并且整个系统可以由相互通信的多个计算设备700、750组成。
计算设备750包括处理器752、存储器764、诸如显示器754的输入/输出设备、通信接口766和收发器768以及其他部件。设备750还可以被提供存储设备,诸如微驱动器或其他设备,以提供另外的存储。部件750、752、764、754、766和768中的每一个使用各种总线互连,并且几个部件可以被安装在公共主板上或者以其他方式酌情安装。
处理器752能够执行计算设备750内的指令,包括存储在存储器764中的指令。处理器可以被实现为包括单独的和多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供设备750的其他部件的协调,诸如对用户界面、由设备750运行的应用以及通过设备750的无线通信的控制。
处理器752可以通过控制接口758和耦合到显示器754的显示接口756与用户通信。显示器754可以是,例如,TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器,或者其他合适的显示技术。显示接口756可以包括用于驱动显示器754向用户呈现图形和其他信息的适当电路。控制接口758可以接收来自用户的命令,并转换它们以提交给处理器752。此外,可以提供与处理器752通信的外部接口762,以使得设备750能够与其他设备进行近距离通信。外部接口762可以例如在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
存储器764存储计算设备750内的信息。存储器764能够被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元。还可以提供扩展存储器774,并通过扩展接口772连接到设备750,扩展接口772可以包括,例如,SIMM(单列直插存储器模块)卡接口。这种扩展存储器774可以为设备750提供额外的存储空间,或者也可以为设备750存储应用或其他信息。具体地,扩展存储器774可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器774可以提供作为设备750的安全模块,并且可以利用许可设备750的安全使用的指令来编程。此外,可以经由SIMM卡提供安全应用以及另外的信息,诸如以不可破解的方式在SIMM卡上放置标识信息。
如下所述,存储器可以包括,例如,闪存和/或NVRAM存储器。在一种实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,当被执行时,这些指令执行一种或多种方法,诸如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器764、扩展存储器774或处理器752上的存储器,其可以例如通过收发器768或外部接口762接收。
设备750可以通过通信接口766进行无线通信,通信接口766在必要时可以包括数字信号处理电路。通信接口766可以提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息接发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器768发生。另外,短程通信可以发生,例如使用蓝牙、Wi-Fi或其他这样的收发器(未示出)。另外,GPS(全球定位系统)接收器模块770可以向设备750提供另外的导航和位置相关的无线数据,这些数据可以由运行在设备750上的应用酌情使用。
设备750还可以使用音频编解码器760进行可听通信,该音频编解码器760可以接收来自用户的口头信息并将其转换成可用的数字信息。音频编解码器760同样可以为用户生成可听声音,诸如通过扬声器,例如,在设备750的手机中。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等)并且还可以包括由在设备750上运行的应用生成的声音。
如图所示,计算设备750可以以多种不同的形式实现。例如,它可以被实现为蜂窝电话780。它也可以被实现为智能电话782、个人数字助理或其他类似移动设备的一部分。
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:基于包括至少一个视频帧的接收的视频流生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的,确定关键帧是否被存储在接收设备处,基于关键帧是否被存储在接收设备处,选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个,并且传送视频数据和帧间预测帧中的至少一个。
在一般方面,流式传输设备包括:控制器,其被配置成确定关键帧是否被存储在接收设备处;选择电路,其被配置成基于确定关键帧是否被存储在接收设备处来选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个;以及发射器,其被配置成传送视频数据和帧间预测帧中的至少一个。
在一般方面,编码器包括:压缩帧生成器,其被配置成基于包括至少一个帧的接收的视频流生成关键帧和帧间预测帧中的至少一个,帧间预测帧是使用来自关键帧的信息生成的;控制器,其被配置成确定关键帧是否被存储在接收设备处,选择电路,其被配置成基于关键帧是否被存储在接收设备处来选择视频数据作为关键帧或表示该关键帧的关键帧标识符中的一个;以及发射器,其被配置成传送视频数据和帧间预测帧中的至少一个。
实施方式能够包括一个或多个以下特征。例如,帧间预测帧能够是前向预测帧或双向预测帧中的一个。该方法能够进一步包括存储与至少一个关键帧相关联的信息。确定关键帧是否被存储在接收设备处能够包括确定视频输入包括关键帧标识符。确定关键帧是否被存储在接收设备处能够包括确定关键帧是用户界面的图形元素,并且关键帧标识符与用户界面的图形元素相关联。确定关键帧是否被存储在接收设备处能够包括比较与关键帧相关联的至少一个像素颜色,并且确定关键帧被存储在接收设备处中的一项基于颜色差值标准或者基于至少一个像素颜色的比较的均方误差计算。确定关键帧是否被存储在接收设备处能够包括基于关键帧生成直方图,并且将生成的直方图与存储的直方图进行比较。
确定关键帧是否被存储在接收设备处能够包括基于关键帧生成签名,并将生成的签名与存储的签名进行比较。确定关键帧是否被存储在接收设备处能够包括使用经训练的机器学习模型基于关键帧生成至少一个对象分类和对象位置,并且将该至少一个对象分类和对象位置与和存储在接收设备处的关键帧相关联的存储的对象分类和对象位置进行比较。如果关键帧没有被存储在接收设备处,则该方法能够进一步包括生成对应于关键帧的关键帧标识符,并且使得关键帧和关键帧标识符被传送到接收设备。
该流式传输设备能够接收包括至少一个帧的视频流,并且能够进一步包括编码器,该编码器被配置成基于该至少一个帧生成关键帧和帧间预测帧中的至少一个,该帧间预测帧是使用来自关键帧的信息生成的。该流式传输设备能够进一步包括被配置成存储与至少一个关键帧相关联的信息的存储器。
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:接收包括视频数据和帧间预测帧中的至少一个的视频流,视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个,基于视频数据选择关键帧或存储的关键帧中的一个,并且基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
在一般方面,回放设备包括:接收器,其被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个;以及选择电路,其被配置成基于视频数据选择关键帧或存储的关键帧中的一个。
在一般方面,回放设备包括:接收器,其被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,视频数据是关键帧和表示关键帧的关键帧标识符中的至少一个;以及解码器,其包括选择电路和解压缩模块,该选择电路被配置成基于视频数据选择关键帧或存储的关键帧中的一个,该解压缩模块被配置成基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
实施方式能够包括一个或多个以下特征。例如,该方法能够进一步包括从包括至少一个存储的关键帧的库中选择存储的关键帧。该方法能够进一步包括确定视频数据是否包括关键帧和关键帧标识符,并且响应于确定视频数据包括关键帧和关键帧标识符,将与关键帧标识符相关的关键帧存储在关键帧库中。该方法能够进一步包括确定视频数据是否包括关键帧而没有关键帧标识符,并且响应于确定视频数据包括关键帧而没有关键帧标识符,生成关键帧标识符,并且将与关键帧标识符相关的关键帧存储在关键帧库中。
该方法能够进一步包括确定视频数据是否包括关键帧标识符而没有关键帧,并且响应于确定视频数据包括关键帧而没有关键帧标识符,基于关键帧标识符从关键帧库中读取关键帧。该方法还能够包括:确定视频数据是否包括关键帧标识符或关键帧中的一个,响应于确定视频数据包括关键帧标识符而没有关键帧,基于关键帧标识符从关键帧库中读取关键帧;以及使得选择从关键帧库中读取的关键帧;以及响应于确定视频数据包括关键帧而没有关键帧标识符,使得选择视频数据中包括的关键帧。
回放设备能够进一步包括解码器,该解码器被配置成基于关键帧、存储的关键帧和帧间预测帧中的至少一个来生成用于在回放设备的显示器上显示的视频帧。该回放设备能够进一步包括控制器,该控制器被配置成使得选择电路基于视频数据和包括至少一个存储的关键帧的库来选择关键帧或存储的关键帧中的一个。
在一般方面,设备、系统、非暂时性计算机可读介质(其上存储有能够在计算机系统上执行的计算机可执行程序代码)和/或方法能够利用包括以下步骤的方法来执行过程:基于包括至少一个视频帧的接收到的视频流生成关键帧和帧间预测帧中的至少一个,帧间预测帧是使用来自关键帧的信息生成的,确定关键帧是否被存储在接收设备处,基于关键帧是否被存储在接收设备处,选择视频数据作为关键帧或表示关键帧的关键帧标识符中的一个,传送视频数据和帧间预测帧中的至少一个,接收包括视频数据和帧间预测帧中的至少一个的视频流,基于视频数据选择关键帧或存储的关键帧中的一个,并且基于关键帧、存储的关键帧和帧间预测帧中的至少一个生成用于在回放设备的显示器上显示的视频帧。
虽然示例实施例可以包括各种修改和替代形式,但是其实施例在附图中以示例的方式示出,并且将在本文中详细描述。然而,应该理解的是,并不意图将示例实施例限制于所公开的特定形式,相反,示例实施例将覆盖属于权利要求范围内的所有修改、等同物和替代物。贯穿附图的描述,相同的附图标记指代相同的元件。
这里描述的系统和技术的各种实施方式能够被实现在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中。这些各种实施方式能够包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器可以是专用或通用的,被耦合以从存储系统接收数据和指令,以及向存储系统传输数据和指令。这里描述的系统和技术的各种实施方式能够被实现为和/或在本文中通常被称为可以组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,形成在硅衬底、GaAs衬底等上的处理器)或一些其他可编程数据处理装置上执行的功能/动作/计算机程序指令。
一些上述示例实施例被描述为流程图所描绘的过程或方法。尽管流程图将操作描述为顺序过程,但是许多操作可以并行、并发或同时执行。此外,可以重新安排操作的顺序。这些过程可以在它们的操作完成时终止,但是也可以具有图中未包括的附加步骤。这些过程可以对应于方法、功能、程序、子例程、子程序等。
上面讨论的方法,其中一些由流程图图示,可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段可以被存储在机器或计算机可读介质中,诸如存储介质。处理器可以执行必要的任务。
本文中公开的具体结构和功能细节仅出于描述示例实施例的代表性目的。然而,示例实施例可以被体现为多种替代形式,并且不应该被解释为仅限于本文中阐述的实施例。
应当理解,尽管术语第一、第二等可以在本文中用来描述各种元件,但是这些元件不应该被这些术语限制。这些术语仅用于区分一个元素和另一个元素。例如,在不脱离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文中所使用的,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。
应当理解,当一个元件被称为被连接或耦合到另一个元件时,它能够被直接连接或耦合到另一个元件,或者可以存在中间元件。相反,当一个元件被称为被直接连接或直接耦合到另一个元件时,不存在中间元件。用于描述元件之间关系的其他词语应该以类似的方式解释(例如,之间与直接之间、相邻与直接相邻等)。
本文中使用的术语仅出于描述特定实施例的目的,并不旨在限制示例实施例。如本文中所使用的,单数形式的“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指示。应当进一步理解,术语包括、包括了、包含和/或包含了,当在本文中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组合的存在或添加。
还应当注意,在一些替代实施方式中,所提到的功能/动作可以不按照附图中所提到的顺序发生。例如,取决于所涉及的功能/动作,相继示出的两个图实际上可以同时执行,或者有时可以以相反的顺序执行。
除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与示例实施例所属领域的普通技术人员通常理解的相同的含义。应该进一步理解的是,术语,例如在常用词典中定义的那些术语,应该被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且除非在此明确定义,否则不应该在理想化或过于正式的意义上进行解释。
以上示例实施例的部分和对应的详细描述是按照软件或算法以及对计算机存储器内的数据比特的操作的符号表示来呈现的。这些描述和表示是本领域普通技术人员向本领域其他普通技术人员有效传达其工作实质的描述和表示。这里使用的术语“算法”以及通常使用的术语“算法”被认为是导致期望结果的自洽的步骤序列。这些步骤需要对物理量进行物理操作。通常,尽管不必要,这些量采取能够被存储、传送、组合、比较和以其他方式操纵的光、电或磁信号的形式。主要出于通用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等有时被证明是方便的。
在上述说明性实施例中,对可以被实现为程序模块或功能过程的动作和操作的符号表示(例如,以流程图的形式)的引用包括例程、程序、对象、部件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型,并且可以使用现有结构元件处的现有硬件来描述和/或实现。这种现有硬件可以包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。
然而,应该记住,所有这些和类似的术语都与适当的物理量相关联,并且仅是应用于这些量的方便标签。除非另外特别陈述,或者从讨论中显而易见,诸如处理或运算或计算或确定显示等术语指的是计算机系统或类似电子计算设备的动作和过程,其将计算机系统的寄存器和存储器中表示为物理电子量的数据操纵和转换成计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中类似表示为物理量的其他数据。
还注意,示例实施例的软件实现的方面通常被编码在某种形式的非暂时性程序存储介质上,或者通过某种类型的传输介质来实现。程序存储介质可以是磁性的(例如,软盘或硬盘)或光学的(例如,光盘只读存储器或CD ROM),并且可以是只读的或随机存取的。类似地,传输介质可以是双绞线、同轴电缆、光纤或本领域已知的一些其他合适的传输介质。示例实施例不受任何给定实施方式的这些方面的限制。
最后,还应该注意,虽然所附权利要求阐述了本文中所描述的特征的特定组合,但是本公开的范围不限于此后要求保护的特定组合,而是延伸到包含本文中公开的特征或实施例的任何组合,而不管该特定组合是否在此时已经在所附权利要求中具体列举。

Claims (57)

1.一种流式传输设备,包括:
控制器,所述控制器被配置成确定关键帧是否被存储在接收设备处;
选择电路,所述选择电路被配置成基于确定所述关键帧是否被存储在所述接收设备处来选择视频数据作为所述关键帧或表示所述关键帧的关键帧标识符中的一个;以及
发射器,所述发射器被配置成传送所述视频数据和帧间预测帧中的至少一个。
2.根据权利要求1所述的流式传输设备,进一步包括:
接收包括至少一个帧的视频流;以及
编码器,所述编码器被配置成基于所述至少一个帧生成所述关键帧和所述帧间预测帧中的至少一个,所述帧间预测帧是使用来自所述关键帧的信息生成的。
3.根据权利要求1或权利要求2所述的流式传输设备,其中,所述帧间预测帧是前向预测帧或双向预测帧中的一个。
4.根据权利要求1至权利要求3中的任一项所述的流式传输设备,进一步包括存储器,所述存储器被配置成存储与至少一个关键帧相关联的信息。
5.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:确定到所述编码器的视频输入包括所述关键帧标识符。
6.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:
确定所述关键帧是用户界面的图形元素,并且
所述关键帧标识符与所述用户界面的所述图形元素相关联。
7.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:比较与所述关键帧相关联的至少一个像素颜色,并且确定所述关键帧被存储在所述接收设备处之一是基于颜色差值标准或者基于所述至少一个像素颜色的所述比较的均方误差计算。
8.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成直方图,并将所生成的直方图与存储的直方图进行比较。
9.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成签名,并将所生成的签名与存储的签名进行比较。
10.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,确定所述关键帧是否被存储在所述接收设备处包括:
使用经训练的机器学习模型,基于所述关键帧生成至少一个对象分类和对象位置,以及
将所述至少一个对象分类和对象位置与和存储在所述接收设备处的关键帧相关联的存储的对象分类和对象位置进行比较。
11.根据权利要求1至权利要求4中的任一项所述的流式传输设备,其中,如果所述关键帧没有被存储在所述接收设备处,则所述控制器进一步被配置成生成对应于所述关键帧的关键帧标识符,并且使得所述关键帧和所述关键帧标识符被传送到所述接收设备。
12.一种编码器,包括:
压缩帧生成器,所述压缩帧生成器被配置成基于包括至少一个帧的接收的视频流来生成关键帧和帧间预测帧中的至少一个,所述帧间预测帧是使用来自所述关键帧的信息生成的;
控制器,所述控制器被配置成确定所述关键帧是否被存储在接收设备处;
选择电路,所述选择电路被配置成基于所述关键帧是否被存储在所述接收设备处,选择视频数据作为所述关键帧或表示所述关键帧的关键帧标识符中的一个;以及
发射器,所述发射器被配置成传送所述视频数据和所述帧间预测帧中的至少一个。
13.根据权利要求12所述的编码器,其中,所述帧间预测帧是前向预测帧或双向预测帧中的一个。
14.根据权利要求12或权利要求13所述的编码器,进一步包括:
存储器,所述存储器被配置成存储与至少一个关键帧相关联的信息。
15.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处包括:确定到所述编码器的视频输入包括所述关键帧标识符。
16.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处包括:
确定所述关键帧是用户界面的图形元素,并且
所述关键帧标识符与所述用户界面的所述图形元素相关联。
17.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处是比较与所述关键帧相关联的至少一个像素颜色,并且确定所述关键帧被存储在所述接收设备处之一是基于颜色差值标准或者基于所述至少一个像素颜色的所述比较的均方误差计算。
18.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成直方图,并将所生成的直方图与存储的直方图进行比较。
19.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成签名,并将所生成的签名与存储的签名进行比较。
20.根据权利要求12至权利要求14中的任一项所述的编码器,其中,确定所述关键帧是否被存储在所述接收设备处包括:
使用经训练的机器学习模型,基于所述关键帧生成至少一个对象分类和对象位置,以及
将所述至少一个对象分类和对象位置与和存储在所述接收设备处的关键帧相关联的存储的对象分类和对象位置进行比较。
21.根据权利要求12至权利要求14中的任一项所述的编码器,其中,如果所述关键帧没有被存储在所述接收设备处,则所述控制器进一步被配置成生成对应于所述关键帧的关键帧标识符,并且使得所述关键帧和所述关键帧标识符被传送到所述接收设备。
22.一种方法,包括:
基于包括至少一个视频帧的接收的视频流来生成关键帧和帧间预测帧中的至少一个,所述帧间预测帧是使用来自所述关键帧的信息生成的;
确定所述关键帧是否被存储在接收设备处;
基于所述关键帧是否被存储在所述接收设备处,选择视频数据作为所述关键帧或表示所述关键帧的关键帧标识符中的一个;以及
传送所述视频数据和所述帧间预测帧中的至少一个。
23.根据权利要求22所述的方法,其中,所述帧间预测帧是前向预测帧或双向预测帧中的一个。
24.根据权利要求22或权利要求23所述的方法,进一步包括:
存储与至少一个关键帧相关联的信息。
25.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:确定视频输入包括所述关键帧标识符。
26.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:
确定所述关键帧是用户界面的图形元素,并且
所述关键帧标识符与所述用户界面的所述图形元素相关联。
27.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:比较与所述关键帧相关联的至少一个像素颜色,并且确定所述关键帧被存储在所述接收设备处之一是基于颜色差值标准或基于所述至少一个像素颜色的所述比较的均方误差计算。
28.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成直方图,并将所生成的直方图与存储的直方图进行比较。
29.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:基于所述关键帧生成签名,并将所生成的签名与存储的签名进行比较。
30.根据权利要求22至权利要求24中的任一项所述的方法,其中,确定所述关键帧是否被存储在所述接收设备处包括:
使用经训练的机器学习模型,基于所述关键帧生成至少一个对象分类和对象位置,以及
将所述至少一个对象分类和对象位置与和存储在所述接收设备处的关键帧相关联的存储的对象分类和对象位置进行比较。
31.根据权利要求22至权利要求24中的任一项所述的方法,其中,如果所述关键帧没有被存储在所述接收设备处,则所述方法包括:
生成对应于所述关键帧的所述关键帧标识符;以及
使得所述关键帧和所述关键帧标识符被传送到所述接收设备。
32.一种包括存储在其上的指令的非暂时性计算机可读存储介质,当由至少一个处理器执行时,所述指令被配置成使得计算系统执行根据权利要求22至权利要求31中的任一项所述的方法。
33.一种装置,包括用于执行根据权利要求22至权利要求31中的任一项所述的方法的组件。
34.一种装置,包括:
至少一个处理器;以及
包括计算机程序代码的至少一个存储器;
所述至少一个存储器和所述计算机程序代码被配置成利用所述至少一个处理器使得所述装置至少执行根据权利要求22至权利要求31中的任一项所述的方法。
35.一种回放设备,包括:
接收器,所述接收器被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,所述视频数据是关键帧和表示所述关键帧的关键帧标识符中的至少一个;以及
选择电路,所述选择电路被配置成基于所述视频数据选择所述关键帧或存储的关键帧中的一个。
36.根据权利要求35所述的回放设备,进一步包括:
解码器,所述解码器被配置成基于所述关键帧、所述存储的关键帧和所述帧间预测帧中的至少一个,生成用于在所述回放设备的显示器上显示的视频帧。
37.根据权利要求35或权利要求36所述的回放设备,进一步包括:
控制器,所述控制器被配置成使得所述选择电路基于所述视频数据选择所述关键帧或所述存储的关键帧中的一个;以及
包括至少一个存储的关键帧的库。
38.根据权利要求37所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧和所述关键帧标识符,以及
响应于确定所述视频数据包括所述关键帧和所述关键帧标识符,将与所述关键帧标识符相关的所述关键帧存储在所述库中。
39.根据权利要求37所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧而没有所述关键帧标识符,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
生成所述关键帧标识符,以及
将与所述关键帧标识符相关的所述关键帧存储在所述库中。
40.根据权利要求37所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧标识符而没有所述关键帧,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,基于所述关键帧标识符从所述库中读取所述关键帧。
41.根据权利要求37所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧标识符或所述关键帧中的一个,
响应于确定所述视频数据包括所述关键帧标识符而没有所述关键帧,
基于所述关键帧标识符从所述库中读取所述关键帧,以及
使得所述选择电路选择从所述库中读取的所述关键帧,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
使得所述选择电路选择包括在所述视频数据中的所述关键帧。
42.一种回放设备,包括:
接收器,所述接收器被配置成接收包括视频数据和帧间预测帧中的至少一个的视频流,所述视频数据是关键帧和表示所述关键帧的关键帧标识符中的至少一个;以及
解码器,所述解码器包括:
选择电路,所述选择电路被配置成基于所述视频数据选择所述关键帧或存储的关键帧中的一个,以及
解压缩模块,所述解压缩模块被配置成基于所述关键帧、所述存储的关键帧和所述帧间预测帧中的至少一个,生成用于在所述回放设备的显示器上显示的视频帧。
43.根据权利要求42所述的回放设备,其中,所述解码器进一步包括:
控制器,所述控制器被配置成使得所述选择电路基于所述视频数据选择所述关键帧或所述存储的关键帧中的一个,以及
包括至少一个存储的关键帧的库。
44.根据权利要求43所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧和所述关键帧标识符,以及
响应于确定所述视频数据包括所述关键帧和所述关键帧标识符,将与所述关键帧标识符相关的所述关键帧存储在所述库中。
45.根据权利要求43所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧而没有所述关键帧标识符,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
生成所述关键帧标识符,以及
将与所述关键帧标识符相关的所述关键帧存储在所述库中。
46.根据权利要求43所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧标识符而没有所述关键帧,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,基于所述关键帧标识符从所述库中读取所述关键帧。
47.根据权利要求43所述的回放设备,其中,
所述控制器进一步被配置成:
确定所述视频数据是否包括所述关键帧标识符或所述关键帧中的一个,
响应于确定所述视频数据包括所述关键帧标识符而没有所述关键帧,
基于所述关键帧标识符从所述库中读取所述关键帧,以及
使得所述选择电路选择从所述库中读取的所述关键帧,以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
使得所述选择电路选择包括在所述视频数据中的所述关键帧。
48.一种方法,包括:
接收包括视频数据和帧间预测帧中的至少一个的视频流,所述视频数据是关键帧和表示所述关键帧的关键帧标识符中的至少一个;
基于所述视频数据选择所述关键帧或存储的关键帧中的一个;以及
基于所述关键帧、所述存储的关键帧和所述帧间预测帧中的至少一个,生成用于在回放设备的显示器上显示的视频帧。
49.根据权利要求48所述的方法,进一步包括:
从包括至少一个存储的关键帧的库中选择所述存储的关键帧。
50.根据权利要求48或权利要求49所述的方法,进一步包括:
确定所述视频数据是否包括所述关键帧和所述关键帧标识符;以及
响应于确定所述视频数据包括所述关键帧和所述关键帧标识符,将与所述关键帧标识符相关的所述关键帧存储在关键帧库中。
51.根据权利要求48至权利要求50中的任一项所述的方法,进一步包括:
确定所述视频数据是否包括所述关键帧而没有所述关键帧标识符;以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
生成所述关键帧标识符,以及
将与所述关键帧标识符相关的所述关键帧存储在关键帧库中。
52.根据权利要求48至权利要求50中的任一项所述的方法,进一步包括:
确定所述视频数据是否包括所述关键帧标识符而没有所述关键帧;以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,基于所述关键帧标识符从关键帧库中读取所述关键帧。
53.根据权利要求48至权利要求50中的任一项所述的方法,进一步包括:
确定所述视频数据是否包括所述关键帧标识符或所述关键帧中的一个,
响应于确定所述视频数据包括所述关键帧标识符而没有所述关键帧,
基于所述关键帧标识符从关键帧库中读取所述关键帧,以及
使得选择从所述关键帧库中读取的所述关键帧;以及
响应于确定所述视频数据包括所述关键帧而没有所述关键帧标识符,
使得选择包括在所述视频数据中的所述关键帧。
54.一种包括存储在其上的指令的非暂时性计算机可读存储介质,当由至少一个处理器执行时,所述指令被配置成使得计算系统执行根据权利要求48至权利要求53中的任一项所述的方法。
55.一种装置,包括用于执行根据权利要求48至权利要求53中的任一项所述的方法的组件。
56.一种装置,包括:
至少一个处理器;以及
包括计算机程序代码的至少一个存储器;
所述至少一个存储器和所述计算机程序代码被配置成利用所述至少一个处理器使得所述装置至少执行根据权利要求48至权利要求53中的任一项所述的方法。
57.一种方法,包括:
基于包括至少一个视频帧的接收的视频流来生成关键帧和帧间预测帧中的至少一个,所述帧间预测帧是使用来自所述关键帧的信息生成的;
确定所述关键帧是否被存储在接收设备处;
基于所述关键帧是否被存储在所述接收设备处,选择视频数据作为所述关键帧或表示所述关键帧的关键帧标识符中的一个;
传送所述视频数据和所述帧间预测帧中的至少一个;
接收包括所述视频数据和所述帧间预测帧中的所述至少一个的所述视频流;
基于所述视频数据选择所述关键帧或存储的关键帧中的一个;以及
基于所述关键帧、所述存储的关键帧和所述帧间预测帧中的至少一个,生成用于在回放设备的显示器上显示的视频帧。
CN202180006692.9A 2021-04-09 2021-04-09 使用关键帧库的高级视频代码化 Pending CN115462090A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/070375 WO2022216334A1 (en) 2021-04-09 2021-04-09 Advanced video coding using a key-frame library

Publications (1)

Publication Number Publication Date
CN115462090A true CN115462090A (zh) 2022-12-09

Family

ID=75660435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180006692.9A Pending CN115462090A (zh) 2021-04-09 2021-04-09 使用关键帧库的高级视频代码化

Country Status (6)

Country Link
US (1) US20230224476A1 (zh)
EP (1) EP4091333A1 (zh)
JP (1) JP2024512871A (zh)
KR (1) KR20230128066A (zh)
CN (1) CN115462090A (zh)
WO (1) WO2022216334A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6169821B1 (en) * 1995-09-18 2001-01-02 Oki Electric Industry Co., Ltd. Picture coder, picture decoder, and picture transmission system
CN103299644A (zh) * 2011-01-03 2013-09-11 苹果公司 使用暗示参考帧的视频编码系统
CN103430538A (zh) * 2011-02-24 2013-12-04 斯凯普公司 用于视频编码的基于反馈的参考帧选择
US20180077421A1 (en) * 2016-09-09 2018-03-15 Microsoft Technology Licensing, Llc Loss Detection for Encoded Video Transmission
CN107960125A (zh) * 2015-06-24 2018-04-24 谷歌有限责任公司 选择视频的代表性视频帧
US20180167631A1 (en) * 2016-12-14 2018-06-14 Getgo, Inc. Synchronizing video signals using cached key frames
US20180343098A1 (en) * 2017-05-24 2018-11-29 Qualcomm Incorporated Techniques and apparatuses for controlling negative acknowledgement (nack) transmissions for video communications
CN110024409A (zh) * 2016-11-21 2019-07-16 思科技术公司 具有多个接收器的视频流的关键帧削弱
US20200357444A1 (en) * 2017-01-16 2020-11-12 Zhejiang Dahua Technology Co., Ltd. Systems and methods for video replaying

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8837769B2 (en) * 2010-10-06 2014-09-16 Futurewei Technologies, Inc. Video signature based on image hashing and shot detection
US9986242B2 (en) * 2014-01-28 2018-05-29 Vmware, Inc. Enhanced image encoding in a virtual desktop infrastructure environment
US10321162B2 (en) * 2015-06-08 2019-06-11 Qualcomm Incorporated Derivation of color gamut scalability parameters and tables in scalable video coding
WO2023028965A1 (en) * 2021-09-02 2023-03-09 Nvidia Corporation Hardware codec accelerators for high-performance video encoding

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6169821B1 (en) * 1995-09-18 2001-01-02 Oki Electric Industry Co., Ltd. Picture coder, picture decoder, and picture transmission system
CN103299644A (zh) * 2011-01-03 2013-09-11 苹果公司 使用暗示参考帧的视频编码系统
CN103430538A (zh) * 2011-02-24 2013-12-04 斯凯普公司 用于视频编码的基于反馈的参考帧选择
CN107960125A (zh) * 2015-06-24 2018-04-24 谷歌有限责任公司 选择视频的代表性视频帧
US20180077421A1 (en) * 2016-09-09 2018-03-15 Microsoft Technology Licensing, Llc Loss Detection for Encoded Video Transmission
CN110024409A (zh) * 2016-11-21 2019-07-16 思科技术公司 具有多个接收器的视频流的关键帧削弱
US20180167631A1 (en) * 2016-12-14 2018-06-14 Getgo, Inc. Synchronizing video signals using cached key frames
US20200357444A1 (en) * 2017-01-16 2020-11-12 Zhejiang Dahua Technology Co., Ltd. Systems and methods for video replaying
US20180343098A1 (en) * 2017-05-24 2018-11-29 Qualcomm Incorporated Techniques and apparatuses for controlling negative acknowledgement (nack) transmissions for video communications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张娜: "视频压缩中的高效帧间编码技术研究", 《CNKI优秀硕士学位论文全文库》, 15 January 2018 (2018-01-15) *

Also Published As

Publication number Publication date
JP2024512871A (ja) 2024-03-21
US20230224476A1 (en) 2023-07-13
EP4091333A1 (en) 2022-11-23
WO2022216334A1 (en) 2022-10-13
KR20230128066A (ko) 2023-09-01

Similar Documents

Publication Publication Date Title
US11039144B2 (en) Method and apparatus for image coding and decoding through inter-prediction
US20210337217A1 (en) Video analytics encoding for improved efficiency of video processing and compression
TWI692245B (zh) 視訊解碼裝置、視訊編碼方法及裝置與電腦可讀儲存媒體
CN107205149B (zh) 通过参考帧缓冲器跟踪的运动矢量参考选择
WO2022037331A1 (zh) 视频处理方法、视频处理装置、存储介质与电子设备
CN113965751B (zh) 屏幕内容编码方法、装置、设备及存储介质
US20200128252A1 (en) Variable Frame Rate Encoding Method and Device, Computer Device and Computer Readable Storage Medium
US11004237B2 (en) Palette coding for color compression of point clouds
US10536726B2 (en) Pixel patch collection for prediction in video coding system
KR102190878B1 (ko) 장면 분류를 위한 시스템 및 방법
CN114938408A (zh) 一种云手机的数据传输方法、系统、设备及介质
US20230224476A1 (en) Advanced video coding using a key-frame library
CN116668691A (zh) 一种图片压缩传输方法、装置及终端设备
CN112714336B (zh) 视频分割方法和装置、电子设备、计算机可读存储介质
US20240070924A1 (en) Compression of temporal data by using geometry-based point cloud compression
CN114449200B (zh) 音视频通话方法、装置及终端设备
WO2018120230A1 (zh) 图像滤波方法、装置以及设备
CN111542858A (zh) 动态图像解析装置、动态图像解析系统、动态图像解析方法、以及程序
CN109302574B (zh) 一种处理视频流的方法和装置
CN116965038A (zh) 多媒体文件的播放方法及相关装置
Jubran et al. Sequence-level reference frames in video coding
CN111771381A (zh) 利用聚类和查找过程的增强的图像压缩
CN110855619A (zh) 播放音视频数据的处理方法、装置、存储介质及终端设备
US20220141469A1 (en) Method and apparatus for constructing motion information list in video encoding and decoding and device
CN111654709B (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