CN111405315A - 用于编码和交付视频内容的分布式体系结构 - Google Patents

用于编码和交付视频内容的分布式体系结构 Download PDF

Info

Publication number
CN111405315A
CN111405315A CN201911002072.9A CN201911002072A CN111405315A CN 111405315 A CN111405315 A CN 111405315A CN 201911002072 A CN201911002072 A CN 201911002072A CN 111405315 A CN111405315 A CN 111405315A
Authority
CN
China
Prior art keywords
video
stream
rate
picture
video stream
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
CN201911002072.9A
Other languages
English (en)
Other versions
CN111405315B (zh
Inventor
M·W·布鲁恩斯
M·B·索尔卡
C·多比斯
M·A·亨特
M·B·多尔
T·K·恩格
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.)
Coherent Logix Inc
Original Assignee
Coherent Logix Inc
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 Coherent Logix Inc filed Critical Coherent Logix Inc
Publication of CN111405315A publication Critical patent/CN111405315A/zh
Application granted granted Critical
Publication of CN111405315B publication Critical patent/CN111405315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • 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
    • 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
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25825Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

本公开涉及用于编码和交付视频内容的分布式体系结构,尤其是提供了一种用于编码视频流的分离式体系结构。源编码器可以编码视频内容流以获得编码的位流和边信息流。边信息流包括表征视频内容流的每一块的速率和/或失真估计函数的信息。同样,每编码模式可以包括不同组的估计函数。编码的位流和边信息流可以被视频转码器接收,其中视频转码器根据客户请求的视频格式和位速率把编码的位流转码为客户请求的画面分辨率。边信息流允许转码器高效和简洁地为其输出位流执行速率控制,其中输出位流被发送到客户端设备。这种分离式体系结构对当前内容交付网络的运营商会尤其有用。

Description

用于编码和交付视频内容的分布式体系结构
本申请是申请日为2013年6月11日、申请号为 201380038883.9、题为“用于编码和交付视频内容的分布式体系结构”的发明专利申请的分案申请。
技术领域
本发明一般地涉及视频内容的压缩和发布,并且具体地,涉及用于编码视频内容的分离式(split)体系结构和在该分离式体系结构中使用的速率控制机制。
背景技术
对视频流服务的需求无处不在,并且在日益增加。因此,对能够压缩视频内容并通过有线和/或无线网络将视频内容高效地交付到用户设备的方法存在日益增长的需要。
例如,对在无线网络中向用户设备(例如,移动设备)交付流视频服务存在巨大的需求。但是,(无线网络的)基站与移动设备之间的空中接口易受无线电干扰,并且由于环境中物体的移动、移动设备的移动、无线电流量的加载和拥塞等等,RF传播的质量动态地改变,因此,在基站与移动设备之间产生变化的信道条件。此外,无线网络中的数据通过RF频谱发送,其中RF频谱是有限的并且昂贵。因此,当信道条件很差时并且当移动设备的屏幕尺寸小于HD TV 时,在大多数的位将可能在移动设备被丢弃或放弃的情况下,没有理由用全分辨率和高位速率以一体适用(one-size-fits-all)的位流发送。存在对以下机制的需要:即,以适于RF信道的带宽有限属性以及信道条件的变化性的方式将流视频交付到移动设备的机制。
作为另一个例子,对减轻由媒体供应商和内容交付网络在向终端用户交付视频内容中所经受的负担存在需要。内容交付网络 (CDN)可以维护高速缓存视频内容标题(content title)并在需要时将内容标题交付给用户的服务器。但是,用户设备一般地具有广泛不同的视频处理能力配置,例如,对画面分辨率和视频格式的不同要求。此外,对于给定的用户设备,随着信道条件的变化,目标位速率会动态地改变。因此,CDN必须维护(或者能够访问)给定内容标题的大量拷贝,即,对用户设备配置和目标位速率的每种可能性组合有一个拷贝。因此,存储器存储成本对于CDN运营商成为问题。而且,当用户设备请求给定的内容标题并且适于所请求的配置和位速率的拷贝在服务器的高速缓存中不存在时,该拷贝必须从中央储存库 (repository)(例如,从诸如Netflix或Amazon的媒体供应商)下载。由于内容标题、用户设备配置以及位速率的组合数量非常大,高速缓存缺失(cache miss)频繁发生,所以需要频繁地从例如服务器群的中央储存库中下载。因此,下载流量的成本对CDN运营商和/或媒体供应商来说成为问题。因此,对能够以成本有效的方式向用户交付视频内容的机制存在需要。
视频内容以压缩位流的形式交付给每个用户。视频编码器用于压缩定义视频内容的源视频流。由于源视频序列的动态复杂性,视频编码器通常需要应用速率控制。换句话说,视频编码器需要动态地控制压缩过程,以便控制压缩位流的输出位速率。此外,在流视频服务的环境下,速率控制需要适应性强,以支持根据编码器与远程解码器之间的动态网络条件变化的目标位速率。因此,对能够以计算高效的方式执行速率控制的视频编码器和/或转码器存在需要。
发明内容
本文所公开的系统、方法和体系结构可以用在各种各样的环境和应用中。
在一个所公开的实施例中,网络边缘转码器可以用来编码并且在无线网络中将数据流传输到用户设备(例如,移动设备)。网络边缘转码器可位于或者靠近(例如,耦合到)基站,并且可以被配置为将高质量和/或高清晰的第一编码视频流转码到为当前正在被服务的移动设备定制(例如,按照诸如画面尺寸、视频格式和位速率的一个或多个因素)的第二编码视频流。此外,网络边缘转码器可以被配置为响应于传输信道的条件变化、接收到的视频质量的变化和/或移动设备配置的变化而动态地控制第二编码视频流的位速率。这些定制和动态控制的能力在无线网络的环境中具有非常大的经济效益。采用这种网络边缘转码器在“网络边缘”定制用户位流的网络体系结构避免了使云中的服务器群负担过重。移动设备可以周期性地向基站发回信息 (分析),使得网络边缘转码器能够相应地实时优化位流,以实现有限RF频谱的最优利用。
在一些实施例中,可以有两种类型返回到基站的分析:无线电分析和视频分析。无线电分析和视频分析可以用于,例如,通过边缘转码器和/或基站进行有效的速率控制。无线电分析可以包括接收在移动设备的参考信号的信号强度、功率和质量。无线电分析可以用来确定在给定的信道条件下用于向用户设备进行可靠传输的最优位速率。 (基站可以把参考信号嵌入在它向移动设备的传输中,以促进这种测量。)视频分析可以包括缓冲区充满状态或从位流解码过程中检测到的错误率。视频分析可以用来确定在由信道条件所施加的约束下交付最好用户体验所需的最优(通常最小)位速率。用于分析的设计约束可以包括由移动设备执行以产生分析的处理的最小化,以及分析的数据大小的最小化,以节省基站(BS)与移动设备之间的信令带宽。
除了节省无线带宽,还期望减少需要从服务器群(持有所有的视频内容)发送到网络边缘的数据量。通过把转码功能转移到网络边缘并且利用在服务器群的视频编码器来产生内容标题的编码版本,无论用于将数据交付到用户设备的通信介质是有线还是无线,它都减少了经由互联网的数据流量以及云服务器的存储需要。
如上所述,网络边缘转码器编码编码视频流并且定制用于给定用户设备的特定配置的那个流。编码视频流通过视频编码器从源视频流中产生。视频编码器还可以产生边信息,边信息在网络边缘转码器为用户设备转码编码视频流的行为中减轻了网络边缘转码器上的负担。边信息可以连同编码视频流一起被发送到网络边缘转码器(或使其对网络边缘转码器可用)。
在一个公开的实施例中,视频编码器可以包括数字电路系统和传输电路系统。
数字电路系统可以被配置为对输入视频流的每一块执行操作,操作包括:(a)接收分别对应于多个编码模式的多个预测残差;(b) 变换预测残差以获得用于相应编码模式的相应变换块;及(c)对每个编码模式Mk,利用量化步长q的一个或多个值中的每一个量化用于编码模式Mk的变换块,以获得变换块的一个或多个量化版本,并且处理包括变换块的一个或多个量化版本的数据集合,以获得表征用于编码模式Mk的速率估计函数Rk(q)的主速率建模数据。
传输电路系统可以被配置为把边信息流发送到通信介质上,其中边信息流包括用于每个编码模式和用于每一块的主建模数据。
在另一个公开的实施例中,视频转码系统可以包括解码器、缩放单元和输出编码器。
编码器可以被配置为接收和解码第一编码视频流,以获得解码的视频流。
缩放单元可以被配置为把解码的视频流缩放成目标画面分辨率,以便获得缩放的视频流。
输出编码器可以被配置为接收与第一编码视频流相关联的边信息流,并且利用边信息流编码缩放的视频流,以便获得第二编码视频流。
第一编码视频流可以解释为源视频流的编码版本。边信息流可以包括表征源视频流的属性的元数据。例如,边信息流可以包括表征源视频流中块的速率和/或失真属性的信息。作为另一个例子,边信息可以包括用于源视频流中的块的运动向量。边信息流可以被输出编码器使用,以用计算高效的方式做出最优(或接近最优)的编码决定,例如,关于为给定块使用哪个编码模式,或者为给定块使用什么量化步长值,或者对于给定块,哪一个或多个运动向量可能给出最优的帧间预测等的决定。
在一些实施例中,边信息流包括对应于N个相应编码模式的N 个速率信息流,其中N大于或等于一,其中假定块预测基于相应的编码模式,则N个速率信息流的每个速率信息流RISk表征第一编码视频流的每一块的对应速率估计函数Rk(q),其中q是量化步长。
在还有的另一个公开实施例中,系统可以包括高速缓存、多个视频转码器设备以及控制器。
高速缓存存储包括第一视频内容项的视频内容项集合,其中每个视频内容项包括对应的编码视频流和对应的边信息流,其中每个视频内容项的边信息流包括对应于一个或多个相应编码模式的一个或多个速率信息流,其中假定块预测基于相应的编码模式,则一个或多个速率信息流的每个速率信息流RISk表征对应编码视频流的每一块的对应速率估计函数Rk(q),其中q是量化步长。
响应于来自相应的多个用户设备对第一视频内容项的多个内容请求中的每一个,控制器可以被配置为分配视频转码器设备中可用的一个来服务相应的用户设备,其中用户设备具有各自不同的视频处理能力(VPC)配置。
每个分配的视频转码器设备可以被配置为:(a)从高速缓存接收第一内容项的编码视频流和边信息流;(b)利用边信息流并根据相应用户设备的VPC配置转码编码视频流,以便获得相应的目标编码视频流;及(c)通过通信介质将相应的目标编码视频流发送到相应的用户设备。
鉴于以下本文所呈现的方法的详细描述,对本领域普通技术人员来说,这些及其它特征和优点将变得显而易见。
附图说明
当下文的详细描述结合以下示图进行考虑时,可以获得对本发明更好的理解,其中:
图1说明用于将视频内容交付给用户设备的系统100的一个实施例。
图2说明用于将视频内容交付给用户设备的系统200的一个实施例。
图3说明用于将视频内容交付给用户设备的系统300的实施例。
图4说明网络边缘转码器设备的一个实施例。
图5说明用于将视频内容交付给用户设备的体系结构500的一个实施例,包括夹层(mezzanine)编码器510和网络边缘转码器520。
图6说明体系结构500的另一个实施例,其中夹层编码器510产生边信息流以及夹层位流。网络边缘转码器520在它的编码过程中使用该边信息。
图7A说明视频编码器700的一个实施例。
图7B说明产生速率估计函数的过程的例子。
图7C说明用于计算在确定速率估计函数中使用的参数的方法 750。
图7D说明产生失真估计函数的过程的例子。
图8说明产生主失真建模数据以及主速率建模数据的视频编码器 700的实施例。
图9说明产生速率建模数据915的视频编码器900的实施例。
图10说明视频转码器系统1000的一个实施例。
图11说明用于在画面的级别计算速率对λ函数的方法1100的一个实施例。
图12根据一组实施例说明集成的编码器或网络边缘转码器的第二部分。
图13说明视频编码器的第一部分的一个实施例。
图14说明作为函数量化步长的成本函数J=λR+D的例子。
图15说明作为速率的函数的失真的例子。
图16A说明基于实际画面尺寸的缓冲区模型更新过程的实施例。
图16B说明基于实际和临时画面尺寸的缓冲区模型更新过程的实施例。
图17说明示例性网络边缘转码器的实施例。
虽然本发明很容易进行各种修改与替换形式,但是其具体实施例通过例子在图中示出并且在本文具体描述。但是,应当理解,示图以及对其的具体描述不是要把本发明限定到所公开的特定形式,而是相反,本发明要涵盖属于如由所附权利要求所定义的本发明主旨与范围内的所有修改、等价物以及备选方案。
具体实施方式
通过引用结合
以下参考通用引用被完整地结合于此,就如同是在本文中全部和完全进行了阐述:
于2012年6月12日提交的标题为“Rate Control for Video Compression”的美国临时申请序列No.61/658,761。
于2008年8月19日发布的标题为“Processing System With Interspersed StallPropagating Processors and Communication Elements”的美国专利No.7,415,594。
于2012年4月3日发布的标题为“Mobile Television Broadcast System”的美国专利No.8,151,305。
Gary J.Sullivan和Thomas Wiegand,“Rate-distortion optimization forvideo compression”,IEEE Signal Processing Magazine,1998年11月,PP.74-90。
Xiang Li等人,“Laplace distribution-based Lagrangian rate distortionoptimization for Hybrid Video Coding”,IEEE Trans. Circuits and Systems forVideo Technology,vol.19,no.2,PP.193- 205。
技术参考
J.Choi和D.Park,“A stable feedback control of the buffer state usingthe controlled Lagrange multiplier method”,IEEE Trans.Image Processing,vol.3,no.5,pp.546-558,1994年9 月。
K.-P.Lim,G.Sullivan,T.Wiegand,“Text description of joint modelreference encoding methods and decoding concealment methods”Joint Video Teamof ISO/IEC MPEG and ITU-T VCEG Document,JVT-X101,日内瓦,2007年6月。
Loren Merritt和Rahul Vanam,“Improved rate control and MotionEstimation for H.264Encoder”,Image Processing,2007, ICIP 2007.Vol.5,V-309-V-312页。
Thomas Wiegand,Michael Lightstone,Debargha Mukherjee, T.GeorgeCampbell,Sanjit K.Mitra,“Rate-Distortion Optimized Mode Selection for VeryLow Bit Rate Video Coding and the Emerging H.263Standard”Circuits and Systemsfor Video Technology,IEEE Transactions on(Volume:6,Issue:2),1996年4 月,pp.182-190。
Liang-jin Lin,Antonio Ortega,“Bit-Rate Control Using PiecewiseApproximated Rate-Distortion Characteristics”Circuits and Systems for VideoTechnology,IEEE Transactions on (Volume:8,Issue:4),1996年8月,pp.446-459。
L-J Lin,A Ortega,C-C J Kuo,“A gradient-based rate control algorithmwith applications to MPEG video”,Image Processing,1995.Proceedings.,International Conference on (Volume:3),华盛顿,DC,23-261995年10月,pp.392-395。
术语
以下是在本申请中使用的术语表:
存储器介质-各种类型的存储器设备或存储设备中的任一种。术语“存储器介质”要包括安装介质,例如,CD-ROM、软盘104或带式设备;计算机系统存储器或随机访问存储器,诸如DRAM、 DDR RAM、SRAM、EDO RAM、Rambus RAM,等等;诸如闪存、磁介质的非易失性存储器,例如硬盘或光存储;寄存器或其它类似类型的存储器元件,等等。存储器介质也可以包括其它类型的存储器或其组合。此外,存储器介质可以位于在其中执行程序的第一计算机中,或者可以位于通过诸如因特网的网络连接到第一计算机的第二个不同的计算机中。在后者的情况下,第二计算机可以向第一计算机提供用于执行的程序指令。术语“存储器介质”可以包括两种或更多种的存储器介质,这些存储器介质可以驻存在不同的位置,例如,驻存在通过网络连接的不同的计算机中。
可编程硬件元件-包括各种硬件设备,其中硬件设备包括经可编程互连连接的多个可编程功能块。例子包括FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、FPOA(现场可编程对象阵列) 和CPLD(复杂PLD)。可编程功能块的范围可以从细粒度(组合逻辑或查找表)到粗粒度(算法逻辑单元或处理器内核)变化。可编程硬件元件也可称为“可重构逻辑”。
软件程序-术语“软件程序”要包括其普通含义的全部范围,并且包括可以存储在存储器介质中并由处理器执行的任意类型的程序指令、代码、脚本和/或数据、或其组合。示例性软件程序包括用基于文本的编程语言编写的程序,编程语言诸如C、C++、PASCAL、FORTRAN、COBOL、JAVA、汇编语言等;图形程序(用图形化编程语言编写的程序);汇编语言程序;已经被编译成机器语言的程序;脚本;及其它类型的可执行软件。软件程序可以包括以某种方式互操作的两个或更多个软件程序。注意,本文中所描述的各种实施例可以由计算机或软件程序来实现。软件程序可以作为程序指令存储在存储器介质上。
硬件配置程序-可用于编程或配置可编程硬件元件的程序,例如,网表或位文件。
程序-术语“程序”要包括其普通含义的全部范围。术语“程序”包括:1)可存储在存储器中并且可被处理器执行的软件程序,或2)可用于配置可编程硬件元件的硬件配置程序。
计算机系统-各种类型的计算或处理系统中的任一种,该计算或处理系统包括个人计算机系统(PC)、大型计算机系统、工作站、网络设备、因特网设备、个人数字助理(PDA)、电视系统、网格计算系统、或其它设备,或设备的组合。通常,术语“计算机系统”可广义地定义为包含具有至少一个执行存储器介质中的指令的处理器的任何设备(或设备的组合)。
自动地-指由计算机系统(例如,由计算机系统执行的软件) 或设备(例如,电路系统、可编程硬件元件、ASIC等)执行的动作或操作,而无需直接规定或执行动作或操作的用户输入。因此,术语“自动地”是相对于被用户手动地执行或规定的操作,其中用户提供输入来直接地执行操作。自动过程可以由用户提供的输入发起,但是“自动地”执行的后续动作不由用户来规定,即,不被“手动地”执行,其中用户规定每个要执行的动作。例如,通过选择每个字段并提供规定信息的输入(例如,通过键入信息、选择复选框、单项选择等)填写电子表格的用户在手动地填写表格,即使计算机系统响应于用户的动作必须更新该表格。表格可以由计算机系统自动地填写,其中计算机系统(例如,在计算机系统上执行的软件)分析表格的字段并填充表格,而无需给字段规定答案的任何用户输入。如以上所指出的,用户可以调用表格的自动填充,但不参与表格的实际填充(例如,用户没有手动地对字段规定答案,而是这些字段被自动地完成)。本说明书提供了响应于用户已采取的行动而自动执行的操作的各种示例。
块:画面的编码单元。例如,在AVC/H.264中,块可以理解为宏块。作为另一个例子,在HEVC/H.265中,块可以理解为编码树单元(CTU)。
速率:在画面的最终位流中与块或画面相关联的位的数目。
失真:可以理解为重构的图像块(在DCT、量化、逆量化、逆 DCT之后)与源图像块之间的平方误差之和(SSE)。也可以使用除SSE之外的其它失真测量。
残差块:预测的块与源图像块之间的差异块。
在以下的描述中,阐述许多具体细节,以提供对本文所呈现的方法和机制的透彻理解。但是,本领域普通技术人员应该认识到,在没有这些具体细节的情况下,也可以实践各种实施例。在一些实例中,没有详细地示出众所周知的结构、组件、信号和技术,以避免模糊本文所描述的方法。应当理解,为了说明的简洁和清晰起见,图中所示的元件没有必要按比例绘制。例如,一些元件的尺寸可能相对于其它元件被夸大。
系统100
在一组实施例中,系统100可以如图1中所示进行配置。系统 100可以在各种各样环境和应用中使用。在一个应用中,系统100可以用作内容交付网络(CDN)的一部分。系统100可以包括存储器 110、一个或多个视频转码器设备VTD1、VTD2、...、VTDNd的集合 120以及控制器130。Nd表示一个或多个视频转码器设备的数量。 (系统100也可以包括以上和以下结合图2-17所描述的特征、元件和实施例的任何子集)。该一个或多个视频转码器设备可以如以下各种描述的那样进行配置。
在一些实施例中,可以在地理上分布存储器、一个或多个视频转码器设备及控制器。例如,在一个实施例中,存储器可以位于一个地理位置,而一个或多个视频转码器设备在另一个地理位置。在这个实施例中,控制器可以位于与一个或多个视频转码器设备相同的位置,或者可替代地,位于与存储器相同的位置,或者,作为另一种替代方案,在两个位置之间进行拆分,或者,作为还有的另一种替代方案,位于第三地理位置。
在一些实施例中,存储器、一个或多个视频转码器设备及控制器在地理上位于同一位置。例如,那些元件可以配置在同一盒子或底盘或电子机架中,或者,作为同一服务器群的一部分,或者,作为同一电子板的一部分,或者作为同一集成电路的一部分。
在一些实施例中,一个或多个视频转码器设备和/或控制器可以位于或靠近无线网络的基站(例如,耦合到基站或作为其的一部分并入)。每个视频转码器设备可以为基站邻域(例如,蜂窝小区)中用户设备中的相应一个产生定制的用户位流。基站可以例如利用任意的各种常规多路复用技术把定制的用户位流多路复用到发送信号中,并且将发送信号发送到空间中。每个用户设备都可以接收到该发送信号并且从接收到的发送信号中恢复适当的一个定制的用户位流。
在一些实施例中,CDN运营商可以采用多个系统100的拷贝,这些拷贝是分布式的,以覆盖服务的地理地区或区域。
存储器110可以存储视频内容项集合。每个视频内容项可以包括对应的编码视频流和对应的边信息流。在一些实施例中,存储器110 可以包括持久性或非易失性存储器存储装置,诸如硬盘驱动器或闪速存储器,和/或,瞬态存储器存储装置,诸如SRAM、DRAM等。在一些实施例中,存储器110可以充当用于视频内容的高速缓存。
在这部分中,我们将重点介绍当多个用户设备请求同一视频内容项时系统100如何响应。但是,应该理解,在更一般的情况下,用户设备可以请求内容项的任意或随机的项。受欢迎的那些内容项可能比比较不受欢迎的内容项具有每单位时间更多的请求。因此,可能多个用户设备会请求同一内容项。
响应于来自相应的多个用户设备UD1、UD2、...、UDNu对给定视频内容项的多个内容请求中的每一个,控制器130可以被配置为分配一个或多个视频转码器设备中可用的一个来服务相应的用户设备。用户设备可以具有各自不同的视频处理能力(VPC)配置。每个分配的视频转码器设备可以被配置为:(1)例如从存储器中接收给定内容项的编码视频流和边信息流;(2)利用边信息流并根据相应用户设备的VPC配置转码编码视频流,以便获得相应的目标编码视频流;及(3)通过通信介质140(诸如,无线传输介质、或无线网络、或有线网络、或有线与无线网络的组合、或因特网)将相应的目标编码视频流发送到相应的用户设备。特别地,注意,系统100能够从视频内容项的单个高速缓存拷贝服务多个不同配置的用户设备。一个或多个视频转码器设备为相应的用户设备处理目标编码视频流的定制。因此,没有必要为了支持用户设备而高速缓存视频内容项的在目标画面分辨率、目标位速率和目标视频格式的不同组合下多个拷贝。这使得在高速缓存110中可存储更大量的视频内容项,而且显著降低高速缓存缺失的概率。(当用户设备请求存储器110中不存在的视频内容项时,称为发生了高速缓存缺失。)
当对于给定的所请求的内容项发生高速缓存缺失时,系统100可能需要从中央内容储存库(或媒体源)中下载内容项。中央内容储存库与系统100之间的信道可能由除CDN运营商之外的其它实体所拥有。(例如,信道可以是因特网)。因此,可能存在与通过信道下载内容相关联的成本。高速缓存缺失概率的降低意味着从中央储存库的下载流量降低,并因此降低了成本。
在一些实施例中,给定内容项的编码视频流可以解释为给定源视频流的编码版本。边信息流可以包括表征给定源视频流的属性的元数据。例如,元数据可以包括编码视频流的每一块的一个或多个候选运动向量。作为另一个例子,元数据可以包括编码视频流的每一块的速率建模数据。作为还有的另一个实施例,元数据可以包括给定内容项的编码视频流的每一块的失真建模数据。
在一些实施例中,通信介质140可以是无线传输介质或无线网络的空中接口。在一个实施例中,一个或多个视频转码器设备中的至少一个耦合到无线通信网络的基站(或接入点)或者与基站(或接入点)结合作为其一部分。用户设备中的一个或多个(或全部)可以被配置为与基站进行无线通信。用户设备可以经来自基站的无线传输接收它们相应的目标编码视频流。用户设备中的一些或者全部可以是移动设备。
控制器130可以被配置为把一个或多个视频转码器设备中给定的一个在不同时间分配给用户设备中不同的设备。例如,当视频转码器设备完成对第一用户设备的服务时,它可以变得可用于服务第二用户设备。因此,即使在只包括一个视频转码器设备的系统100的实施例中,也实现了从内容项的单个存储的拷贝服务多个不同配置的用户设备的好处。
在一些实施例中,系统100也可以包括源编码器。源编码器可以被配置为编码源视频流,以产生内容项的相应项。一个或多个视频转码器设备中的每一个都可以比源编码器有更高的能量效率,并且/或者比源编码器有更高的空间效率。在一些实施例中,内容项在交付到用户设备之前不必要存储在存储器110中。例如,内容项可以与实时事件相联系进行交付。因此,视频内容项可以从源编码器流传输到视频转码器设备中被分配的一个,并且然后立即进行转码并发送到用户设备。
在一些实施例中,每个视频内容项的边信息流可以包括对应于一个或多个相应编码模式的一个或多个速率信息流。(该一个或多个编码模式可以包括一个或多个帧间模式,和/或一个或多个帧内模式)。假定块预测基于相应的编码模式,则一个或多个速率信息流的每个速率信息流RISk可以表征为对应编码视频流的每一块的对应速率估计函数Rk(q)。变量q是量化步长。
在一些实施例中,每个视频内容项的边信息流可以包括对应于一个或多个相应编码模式的一个或多个失真信息流。假定块预测基于相应的编码模式,则一个或多个失真信息流的每个失真信息流DISk可以表征视频内容项的编码视频流的每一块的对应失真函数Dk(q)。
在一些实施例中,视频转码器设备中的给定一个(或每个)可以被配置为通过以下执行转码编码视频流的动作:解码编码视频流以获得解码的视频流;把解码的视频流缩放成相应用户设备的目标画面分辨率,以便获得缩放的视频流;并且利用边信息并根据相应的用户设备的VPC配置编码缩放的视频流,以便获得相应的目标编码视频流。
在一些实施例中,给定的视频转码器设备可以被配置为:通过最小化由标量值λ参数化的拉格朗日速率-失真函数来执行所述缩放的视频流的编码;并且利用边信息动态地调整标量值λ和相应的目标编码视频流的输出位速率,以防止编码画面缓冲区的溢出和下溢,其中编码画面缓冲区在相应的用户设备接收相应的目标编码视频流。
在一些实施例中,给定的视频转码器设备可以被配置为:如果相应的目标编码视频流维持在目标位速率,则计算编码的图片缓冲区的估计占用率与编码图片缓冲区的理论占用率之间的误差;并且为了减小误差幅度,执行所述标量值λ的动态调整。
在一些实施例中,控制器130可以被配置为:从由给定的视频转码器设备服务的用户设备接收消息或报告(例如,分析),其中每个报告包括来自用户设备的分析信息;并且响应于每个报告,更新由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率,以编码缩放的视频流。
在一些实施例中,分析信息可以包括关于给定的视频转码器设备与用户设备之间的链路质量的信息。例如,链路质量信息可以包括以下的一个或多个:位和/或分组误差率、吞吐量、接收到的信号强度和通信延迟。控制器130可以被配置为当关于链路质量的信息指示链路质量下降或提高时,分别减少或增加由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率。
在一些实施例中,分析信息包括关于从由视频转码器设备发送的目标编码视频流中(由用户设备)恢复的视频的质量信息。(视频质量信息的例子可能包括丢弃帧的指示)。控制器可以被配置为当关于视频质量的信息指示视频质量下降或提高时,分别减少或增加由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率。在一个实施例中,视频质量的报告可以与链路质量的报告并行进行。
在一些实施例中,控制器可以被配置为:从由给定的视频转码器设备服务的用户设备接收报告,其中每个报告包括对用户设备的 VPC配置的对应更新;并且响应于每个报告,更新由第一视频转码器设备使用的目标画面分辨率来编码缩放的视频流。(例如,VPC配置更新可以包括对用户设备可接受的当前目标画面分辨率)。
在一些实施例中,每个用户设备的VPC配置可以包括以下的一个或多个的标识:由用户设备请求的视频编码格式;及由用户设备请求的目标画面分辨率。
在一些实施例中,相应的用户设备的VPC配置可以跨M-维的配置空间,其中M至少是二。M-维配置空间可以至少具有用于要被用户设备接收的目标编码视频流的对应于视频格式选择的第一维度和对应于画面分辨率选择的第二维度。
在一些实施例中,控制器130还可以被配置为:存储(例如,在存储器110中)由已被分配用于服务第一用户设备的一个或多个视频转码器设备中给定的一个所产生的目标编码视频流;并且响应于检测到第二用户设备具有与用户设备中的第一用户设备相同或相似的 VPC配置,把存储的目标编码视频流的传输导向到第二用户设备。如果第一用户设备请求给定的视频内容项,则可能存在很大的概率第二个相同配置(或类似配置)的用户设备在不远的将来将请求给定的视频内容项。因此,由视频编码器设备产生的目标编码视频流的高速缓存可以提高系统的效率。
在一组实施例中,用于将视频内容交付给用户设备的方法200可以包括在图2中示出的操作。(方法200也可以包括以上和以下结合图1和3-17所描述的特征、元件和实施例的任何子集)。
在210,可以在存储器中存储视频内容项集合。每个视频内容项可以包括对应的编码视频流和对应的边信息流。
在220,响应于来自相应的多个远程用户设备对视频内容项中给定一个的多个内容请求中的每一个,可以分配一个或多个视频转码器设备中可用的一个来服务相应的用户设备。用户设备可以具有各自不同的视频处理能力(VPC)配置。
在230,方法200可以利用每个分配的视频转码器设备来: (a)例如从存储器接收给定视频内容项的编码视频流和边信息流;(b)利用边信息流并根据相应用户设备的VPC配置转码编码视频流,以便获得相应的目标编码视频流;及(c)通过通信介质(诸如无线传输介质、无线网络、或有线网络、或如以上各种描述的)将相应的目标编码视频流发送到相应的用户设备。
在一些实施例中,给定视频内容项的编码视频流可以解释为给定源视频流的编码版本。边信息流可以包括表征给定源视频流的属性的元数据。在一个实施例中,元数据可以包括编码视频流的每一块的一个或多个候选运动向量。在另一个实施例中,元数据可以包括给定视频内容项的编码视频流的每一块的速率建模数据。在还有的另一个实施例中,元数据包括给定视频内容项的编码视频流的每一块的失真建模数据。当然,可以预期其中合并以上类型的元数据的任意组合的实施例。
在一些实施例中,每个视频内容项的边信息流可以包括对应于一个或多个相应编码模式的一个或多个速率信息流。假定块预测基于相应的编码模式,则该一个或多个速率信息流的每个速率信息流RISk可以表征对应编码视频流的每一块的对应速率估计函数Rk(q),其中 q是量化步长。
在一些实施例中,每个视频内容项的边信息流可以包括对应于一个或多个相应编码模式的一个或多个失真信息流。假定块预测基于相应的编码模式,则一个或多个失真信息流的每个失真信息流DISk可以表征给定视频内容项的编码视频流的每一块的对应失真函数 Dk(q),其中q是量化步长。
在一些实施例中,方法200也可以包括编码源视频流,以产生内容项的相应项。编码源视频流的动作可以通过源编码器(例如,通过以下进一步描述的夹层编码器510、视频编码器700或视频编码器 900)执行。每个视频转码器设备都会比源编码器有更高的能量效率,并且/或者比源编码器有更高的空间效率。
在一些实施例中,方法200也可以包括:(a)从由一个或多个视频转码器设备中给定的一个服务的用户设备接收报告,其中每个报告包括来自用户设备的分析信息;及(b)响应于每个报告,更新由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率,以执行所述编码视频流的转码。
在一些实施例中,分析信息包括关于给定的视频转码器设备与用户设备之间的链路质量的信息。
在一些实施例中,方法200也可以包括当关于链路质量的信息指示链路质量下降或提高时,分别减少或增加由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率。
在一些实施例中,分析信息包括关于从由给定的视频转码器设备发送的相应目标编码视频流中(由用户设备)恢复的视频的质量信息。
在一些实施例中,方法200也可以包括当关于视频质量的信息指示视频质量下降或提高时,分别减少或增加由给定的视频转码器设备使用的目标位速率和/或目标画面分辨率。
在一些实施例中,方法200也可以包括:从由给定的视频转码器设备服务的用户设备接收报告,其中每个报告包括对用户设备的 VPC配置的对应更新(例如,指示对用户设备可接受的当前目标画面分辨率的更新);并且响应于每个报告,更新由给定的视频转码器设备使用来编码缩放的视频流的目标画面分辨率。
在一些实施例中,每个用户设备的VPC配置可以包括由用户设备请求的视频编码格式的标识。在这些实施例中,可以执行转码编码视频流的动作,使得相应的目标编码视频流符合所请求的视频编码格式。
在一些实施例中,每个用户设备的VPC配置可以包括由用户设备请求的目标画面分辨率的标识。在这些实施例中,可以执行转码编码视频流的动作,使得相应的目标编码视频流具有所请求的目标画面分辨率。
在一些实施例中,每个用户设备的VPC配置可以包括由用户设备请求的目标位速率的标识。在这些实施例中,可以执行转码编码视频流的动作,使得相应的目标编码视频流具有约等于目标位速率的平均输出位速率。
在一些实施例中,方法200也可以包括:(a)存储(例如,在存储器中)由已被分配用于服务用户设备中的第一用户设备的一个或多个视频转码器设备中给定的一个产生的目标编码视频流;及(b) 响应于检测到第二用户设备具有与第一用户设备相同或相似的VPC配置,把存储的目标编码视频流的传输导向到第二用户设备。
利用分离式编码器体系结构的内容交付网络
在一组实施例中,内容交付网络300可以如图3中所示出的进行配置。内容交付网络300可以包括存储器310、多个视频转码器设备 VTD1、VTD2、...、VTDNd(统一用标号320指示)及控制器330。 (内容交付网络也可以包括以上和以下结合图1-2和4-17所描述的特征、元件和实施例的任何子集)。
存储器310可以存储多个视频内容项。每个视频内容项可以包括对应的编码视频流和对应的边信息流。存储器310可以通过通信介质 915(例如,由CDN运营商控制的专用网络、因特网或无线网络) 耦合到视频转码器设备。
对于多个远程用户设备UD1、UD2、...、UDNu中的每一个,控制器330可以被配置为接收来自远程用户设备对内容项的相应选定项的请求(例如,经通信介质340),并且把相应的选定内容项的传输导向到视频转码器设备中可用的一个。不同的用户设备可以选择内容项的不同内容项或随机内容项。
每个视频转码器设备VTDk,k=1,2,...,Nd,可以被配置为:接收内容项的相应一项的编码视频流和边信息流;利用边信息流以相应的目标画面分辨率转码编码视频流,以便获得相应的目标编码视频流;并且通过通信介质340(例如,无线传输介质,或无线网络,或有线网络)将相应的目标编码视频流发送到远程用户设备中相应的一个。
在一些实施例中,每个视频内容项的边信息流可以包括对应于N 个相应编码模式的N个速率信息流,其中N大于或等于一。假定块预测基于相应的编码模式,则N个速率信息流的每个速率信息流 RISk可以表征视频内容项的编码视频流的每一块的对应速率估计函数Rk(q)中。变量q是量化步长。
在一些实施例中,内容交付网络300也可以包括被配置为编码源视频流以产生内容项的相应项的源编码器325。源编码器325可以如以下结合夹层编码器510或视频编码器500或视频编码器900所描述的进行配置。每个视频转码器设备可以被配置为比源编码器消耗更少的能量,并且比源编码器占用更少的空间。由于作为对视频转码器设备的输入的边信息流连同编码视频流一起供应允许视频编码器设备省略用于其自身的边信息计算的电路系统和/或程序指令,因此这些约束可被部分地实现。
在一些实施例中,每个视频转码器设备可以被配置为通过以下执行转码的动作:解码编码视频流,以获得相应的解码视频流;及利用边信息流用相应的目标画面分辨率编码相应的解码视频流,以便获得相应的目标编码视频流。
在一些实施例中,每个视频转码器设备可以被配置为:利用由标量值λ参数化的相应速率失真函数基于拉格朗日优化编码相应的解码视频流;并且基于相应的选定内容项的边信息流动态调整标量值λ,以便防止在相应远程用户设备的解码器的编码图片缓冲区的溢出和下溢。
在一些实施例中,每个视频内容项的编码视频流可以解释成相应的源视频流的编码版本。每个视频内容项的边信息流可以包括表征相应的源视频流的属性的元数据。
在一些实施例中,控制器可以被配置为例如基于由用户设备提供的作为上述请求的一部分的识别信息或者作为单独的传输与提供用户认证的处理节点(诸如认证服务器)进行通信。控制器可以从处理节点接收有效性信号,它指示给定的用户(或用户设备)已被认证为有效的用户(或用户设备)。此外,控制器可以例如从处理节点接收允许发送信号,它指示控制器被允许开始发送所请求的视频内容到请求用户设备。
在一些实施例中,控制器可以被配置为向每个视频转码器设备提供用于注入到相应的目标编码视频流的对应的辅助信息。对应的辅助信息可以包括以下的一个或多个:商务实体的品牌信息;广告信息;数字版权管理(DRM)信息;提供水印功能的数字信息;及由内容提供商、内容交付服务提供商、客户或者用户所请求的一个或多个定制特征。
在一些实施例中,数字水印信息可以对已请求视频内容的用户或用户设备进行个性化。因此,如果视频内容被不当地使用,则用户的身份可以从数字水印信息中识别出来。
在一些实施例中,每个视频转码器设备可以被配置为接收对应的辅助信息并且把对应的辅助信息注入到相应的目标编码视频流中。辅助信息可以包括以下的一个或多个:商务实体的品牌信息;广告信息;数字版权管理(DRM)信息;及由内容提供商、内容交付服务提供商、客户或者用户所请求的一个或多个定制特征。
在以下编号的段落中公开了其它的实施例。
1.一种系统(例如,内容交付网络),包括:存储多个视频内容项的存储器,其中每个视频内容项包括对应的编码视频流和对应的边信息流;多个视频转码器设备;及控制器,其中,对于多个远程用户设备中的每一个,控制器被配置为从该远程用户设备接收对内容项的相应一项的请求,并且把相应内容项的传输导向到视频转码器设备中可用的一个;其中每个视频转码器设备被配置为:接收相应内容项的编码视频流和边信息流;利用边信息流用相应的目标画面分辨率转码编码视频流,以便获得相应的目标编码视频流;以及通过通信介质将相应的目标编码视频流发送到远程用户设备中相应的一个。
2.如段1所述的系统,其中控制器被配置为:从分配给视频转码器设备中的第一视频转码器设备的用户设备中第一用户设备接收链路报告,其中每个链路报告指示第一视频转码器设备与第一用户设备之间的信道的相应状态;以及响应于每个链路报告,更新由第一视频转码器设备所使用的目标位速率来转码编码视频流。
3.如段1所述的系统,其中每个视频内容项的编码视频流是相应的源视频流的编码版本,其中每个视频内容项的边信息流包括表征相应的源视频流的属性的元数据。
4.如段3所述的系统,其中元数据包括对应的编码视频流的每一块的一个或多个候选运动向量。
5.如段3所述的系统,其中元数据包括对应的编码视频流的每一块的速率建模数据。
6.如段3所述的系统,其中元数据包括对应的编码视频流的每一块的失真建模数据。
7.如段1所述的系统,其中每个视频内容项的边信息流包括对应于N个相应编码模式的N个速率信息流,其中N大于或等于一,其中假定块预测基于相应的编码模式,则N个速率信息流的每个速率信息流RISk表征视频内容项的编码视频流的每一块的对应速率估计函数Rk(q),其中q是量化步长。
8.如段1所述的系统,其中每个视频内容项的边信息流包括对应于一个或多个相应编码模式的一个或多个失真信息流,其中假定块预测基于相应的编码模式,则一个或多个失真信息流的每个失真信息流DISk表征视频内容项的编码视频流的每一块的对应失真函数 Dk(q),其中q是量化步长。
9.如段1所述的系统,还包括被配置为编码源视频流以产生内容项的相应一项的源编码器,其中每个视频转码器设备都比源编码器消耗更少的能量,并且比源编码器占用更少的空间。
10.如段1所述的系统,其中每个视频转码器设备被配置为通过以下执行所述转码:解码编码视频流以获得相应的解码视频流;以及利用边信息流用相应的目标画面分辨率编码相应的解码视频流,以便获得相应的目标编码视频流。
11.如段1所述的系统,其中控制器被配置为向每个视频转码器设备提供用于注入到相应的目标编码视频流中的对应的辅助信息,其中对应的辅助信息包括以下的一个或多个:商务实体的品牌信息;广告信息;数字版权管理(DRM)信息;提供水印功能的数字信息;由内容提供商、内容交付服务提供商、客户或者用户所请求的一个或多个定制特征。
12.如段1所述的系统,其中每个视频转码器设备被配置为接收对应的辅助信息并且把对应的辅助信息注入到相应的目标编码视频流中,其中对应的辅助信息包括以下的一个或多个:商务实体的品牌信息;广告信息;数字版权管理(DRM)信息;提供水印功能的数字信息;由内容提供商、内容交付服务提供商、客户或者用户所请求的一个或多个定制特征。
网络边缘转码器
图4示出了用于利用网络边缘转码器将内容交付给客户端的方法的一个实施例。在410,内容提供商可以执行每内容标题的单个夹层编码。夹层编码生成每内容标题的编码夹层流文件和边信息流。
用于每个内容标题的单个编码夹层流文件和边信息流文件可被上传到内容交付网络(CDN)的原始服务器。网络边缘转码器415可以利用边信息流、根据每个客户端的要求把夹层流转换成任意的分辨率和位速率。http服务器(未示出)可以高速缓存每个内容标题的一个拷贝。http服务器可以例如经因特网接收来自客户端的http段请求(即,对特定内容项的段的请求)。如果所请求的段不在服务器高速缓存中,则http服务器可以从原始服务器(未示出)请求该段。原始服务器将所请求的段传送到http服务器。然后http服务器可以给边缘转码器提供所请求的段(即,一个编码夹层流的一部分)。边缘转码器可以解码所请求的段以获得解码的流、缩放解码的流以获得缩放的流、及编码缩放的流以获得输出流。输出流例如经因特网或无线网络传送到客户端。网络边缘转码器按照每个客户端的要求将所请求的段转换成任意的分辨率和任意的位速率。在图4中示出的具体数值(诸如用于编码夹层流的1080p24和20Mb/s,以及用于到客户端的流的720p24和3Mb/s)仅仅为说明起见而提供,并不意味着要对发明原理的范围进行限定。可以预期用于在这里及附图中其它地方所说明的各种流的各种各样的位速率和画面分辨率。
夹层编码器410可以编码源视频流,以产生夹层位流。夹层编码器410也可以在夹层编码过程中产生信息(例如,速率度量和/或失真度量)。这些信息可以在单独的边信息流中携带,或作为夹层位流中的用户数据。例如,速率和失真度量可以:用于速率控制、自适应量化、在编码器430中与HRD兼容,即,用于控制从编码器430发送到客户端的输出位流的速率。因此,夹层编码器和编码器430的组合有效地形成双-通编码器。这种体系结构利用夹层编码器的无限制计算预算来计算速率和失真度量(例如,高质量度量)。它还最小化了网络边缘编码器430需要为有效的速率控制执行的计算量。
用于交付视频内容的系统500
在一组实施例中,如在图5中所示出的,用于交付视频内容的系统500可以包括夹层编码器510、网络边缘转码器520、通信介质 525(诸如无线网络、或有线网络、或无线和有线网络的组合)及用户设备530。系统500可用作内容交付网络或各种其它应用中任一种的一部分。
夹层编码器510接收输入视频流505(即,画面序列)并产生夹层位流。夹层位流可以是编码视频流。(夹层位流之所以这样命名是因为它具有介于两个设备510和520之间的位置。夹层编码器之所以这样命名是因为它产生夹层位流)。夹层位流可以例如通过诸如因特网或无线网络的通信介质发送到网络边缘转码器520。在一些实施例中,夹层位流可以发送到存储器介质用于存储,然后将来由网络边缘转码器从存储器介质中检索。
夹层编码器可以充当上述系统100或方法200或系统300的源编码器。
网络边缘转码器520可以接收夹层位流,并且根据用户设备530 可接受的或所请求的视频处理能力(VPC)配置转码夹层位流。用户设备的VPC配置可以包括所请求的画面分辨率和/或所请求的视频格式和/或所请求的位速率。因此,网络边缘转码器产生为用户设备定制的用户位流。用户位流通过通信介质525发送到用户设备530。
网络边缘转码器520可以充当系统100或方法200或系统300的视频转码器设备。
网络边缘转码器520之所以这样命名是因为它位于或靠近网络 (诸如无线网络或有线网络或因特网)边缘。例如,网络边缘转码器可以位于或靠近无线网络的无线接入点(例如,基站)。作为另一个例子,网络边缘转码器可以位于或靠近内容交付网络的边界节点。 (内容交付网络的边界节点是将数据朝着用户设备从内容交付网络输出到内容交付网络之外的内容交付网络的处理节点或设备)。作为另一个例子,网络边缘转码器可以位于或靠近到与用户设备接口的调制解调器的电缆或光纤连接的头端。
在一些实施例中,通信介质525可以是无线网络或者无线网络的空中接口。在一个实施例中,网络边缘转码器520可以将用户位流提供给无线网络的基站,并且基站可以通过空中接口将用户位流发送到用户设备。用户设备可以包括收发器来接收所发送的用户位流并将信号发送到基站。用户设备可以发送关于被用户看到的观看体验质量的消息。例如,消息可以包括无线电分析,诸如接收信号强度、在用户设备接收到的指示基站与用户设备之间的信道质量的参考信号的功率和质量。基站可以在其传输中嵌入参考信号,以促进这种测量。无线电分析可以用来确定用于在给定的信道条件下到用户设备的可靠传输的最佳位速率。消息也可以包括视频分析,例如,关于由用户设备从用户位流中恢复的视频的质量的消息。视频分析可以用于确定在由信道条件所施加的约束下交付最大用户体验所需的最佳(通常最小)位速率。(无线电分析和视频分析可以被网络边缘转码器520使用,以在其用户位流的产生中执行速率控制)。
在一些实施例中,通信介质525可以包括有线网络。
在一些实施例中,通信介质525可以包括因特网。
在一些实施例中,如在图6中所示出的,夹层编码器还将边信息流发送给网络边缘编码器520。边信息流可以包括表征输入视频流 505的属性的元数据,例如,减轻网络边缘转码器在其转码夹层位流的任务中的负担的信息。例如,边信息流可以被网络边缘转码器520 使用,以在其用户位流的产生中应用速率控制。作为另一个例子,边信息流可以使得网络边缘转码器与在不提供边信息流的情况下相比更高效地得出最优编码的决定(例如,关于量化步长、编码模式、运动向量选择的决定)。
边信息流可以包括表征用于输入视频流中的每一块或者至少用于在诸如P画面与B画面的选定画面中的每一块的速率估计函数R(q) 和失真估计函数D(q)的信息。针对量化步长q的任意给定值的速率估计函数R(q)表示位的数量的估计,该位的数目将由以等于该给定值的量化步长量化该块的变换后的预测残差(prediction residual)并且然后编码量化结果导致的。针对量化步长q的任意给定值的失真估计函数D(q)表示图像失真(相对于该块的原始图像样本)的估计,该图像失真将由以等于给定值的量化步长量化该块的变换后的预测残差并且然后编码量化结果导致的。
边信息流可以包括用于每块以及N个编码模式中的每一个的速率估计函数和失真估计函数,其中N大于或等于一。N的值可以在画面间变化。例如,I画面可以只包括帧内模式,而P或B画面可以包括一个或多个帧间模式以及一个或多个帧内模式。
视频编码器700
在一组实施例中,视频编码器700(在此也称作“夹层编码器”)可以如在图7A中所示出的进行配置。视频编码器可以被配置为对输入视频流705操作来产生边信息流730。视频编码器也可以产生编码视频流725。视频编码器700可以包括数字电路系统710和传输电路系统720。(视频编码器700也可以包括以上和以下结合图1- 6和8-17所描述的特征、元件和实施例的任何子集)。
数字电路系统710可以通过在存储的程序指令的控制下操作的一个或多个处理器、通过诸如ASIC的一个或多个专用数字电路、通过诸如FPGA的一个或多个可编程硬件元件或者上述任意组合来实现。在一个实施例中,数字电路系统可以包括在存储的程序指令的控制下操作的处理器的并行阵列。
在一些实施例中,边信息流730可以包括输入数据流的每一块的速率建模数据。
在一些实施例中,边信息流730可以包括输入数据流的每一块的失真建模数据。
在一些实施例中,边信息流730可以包括用于输入数据流的每一块的候选运动向量。
在一些实施例中,边信息流730可以包括对应于一个或多个相应编码模式的一个或多个速率信息流,其中每个速率信息流RISk表征输入视频流的每一块的对应速率估计函数Rk(q),其中q是量化步长。
在一些实施例中,边信息流730可以包括对应于一个或多个相应编码模式的一个或多个失真信息流,其中每个失真信息流DISk表征输入视频流的每一块的对应失真估计函数Dk(q),其中q是量化步长。
图7B中示出了针对一种编码模式的用于输入视频流的块的典型的速率特征TRC。在这个实施例中,速率估计函数Rk(q)可以通过若干个参考点P1、P2、P3进行表征。每个参考点都是对于量化步长的对应值qv的速率Rk(qv)值。
在一些实施例中,确定速率估计函数Rk(q)的过程包括计算若干个参考点,然后使连续函数模型拟合到参考点。
图7C示出了为输入视频的每一块和为每种编码模式计算属于速率特性的若干个参考点的示例处理流程。作为对每一块的正常变换编码和模式确定过程的一部分,为残余块755计算DCT(如在760所指示的),结果产生未量化的系数。在770应用统一量化器(即,qstep=1),并且结果产生的系数被处理以计算该块可能生成的最大速率777。这在速率(qstep)曲线上提供了点(ratemax, qstepmin)。注意qstepmin=1。
统一量化系数被检查,以确定最大的系数。这告知了qstep的什么值772将使所有量化的系数变为零。那个值被称为qstepmax。这在速率(qstep)曲线上提供了点(ratemin,qstepmax)。注意 ratemin=0。
最终未量化的系数在780用qstep的中间值被再次量化,其中 qstep的中间值是为既不是无损压缩也不是极端压缩的夹层位流的实际编码选择的。(该中间值表示为qstepmid。)结果产生的系数用于在速率(qstep)曲线上确定点(ratemid,qstepmid)。参见785 和787。
图7D中示出了针对一种编码模式的用于输入视频流的块的典型失真特征TDC。在这个实施例中,失真估计函数Dk(q)可以通过若干个参考点Q1、Q2、Q3进行表征。每个参考点都是对于量化步长的对应值qv的失真Dk(qv)值。
在一些实施例中,确定失真估计函数Dk(q)的过程包括计算若干个参考点,然后使连续函数模型拟合到参考点。
数字电路系统710可以配置成为输入视频流的每一块执行以下操作。
(A)数字电路系统可以接收分别对应于相应多个编码模式的多个预测残差。每个预测残差都是针对对应编码模式的输入块和预测之间的差异。每个预测都可以是与输入块同一维度的数组。
(B)数字电路系统可以变换预测残差以获得用于相应编码模式的相应的变换块:
TBk←Tranform(PRk),
k=1,2,...,N。在一些实施例中,该变换是离散余弦变换 (DCT)。但是,也可以使用其它的变换。
(C)对每种编码模式Mk,数字电路系统可以利用量化步长q的一个或多个值中的每一个为编码模式Mk量化变换块,以获得变换块的一个或多个量化版本。数字电路系统可以处理包括变换块的一个或多个量化版本的数据集合,以获得表征用于编码模式Mk的速率估计函数Rk(q)的主速率建模数据(PMRD)。每个量化版本的处理为量化步长的对应值qv给出了速率Rk(qv)的估计(或测量值)。对应于量化步长的一个或多个值的一个或多个有序对的集合{(qv,Rk(qv))}可以解释为是速率估计函数Rk(q)的特征描述。
如上所述,视频编码器700也可以包括传输电路系统720。传输电路系统可以被配置为将边信息流730发送到通信介质上(例如,因特网或无线网络)。边信息流可以包括用于每种编码模式和用于每一块的主速率建模数据(PRMD)。
在一些实施例中,多种编码模式可以包括帧内块编码模式和帧间块编码模式。在其它实施例中,多种编码模式可以包括各种预测子块的划分。
在一些实施例中,在以上步骤(C)中使用的量化步长q的一个或多个值包括表示量化步长等于一的最小值qmin。在这些实施例中,上述处理数据集合的动作可以包括基于对应于等于一的量化步长的量化版本中最大绝对值的系数来确定量化步长的最大值qmax(对应于零速率值,例如,所有的量化系数为零)。(回想一下量化版本的每一个都是量化变换系数的数组。)用于产生主速率建模数据的数据集合可以包括最大值qmax
备选地,qmax可以更直接地根据变换块而不是根据变换块的最小量化版本计算。(在一些视频编码标准中,利用等于一的量化步长对变换块进行量化包括身份映射,即,在变换块的相应系数中不引起变化。因此,qmax的计算也可以同样依赖于未量化的变换块。)因此,由数字电路系统执行的针对每块的操作也可以包括:对于每个编码模式Mk,基于用于该编码模式的变换块,即,基于具有最大绝对值的变换块的系数,计算量化步长的最大值qmax(对应于零速率值)。在这个可替代的实施例中,用于产生主速率建模数据的数据集合也包括最大值qmax
在一些实施例中,量化步长的一个或多个值可以包括表示量化步长等于一的最小值qmin。此外,处理数据集合的动作可以包括基于对应于最小值qmin的量化版本,计算与量化步长的最小值qmin相关联的最大速率值Rmmax。可替代地,最大速率值Rmmax可以更直接地根据变换块而不是根据变换块的最小量化版本确定。在这个可替代的实施例中,由数字电路系统执行的针对每块的操作也可以包括基于用于那个编码模式的变换块计算与量化步长的最小值qmin相关联的最大速率值Rmmax。在这些实施例中,用于产生主建模数据的数据集合包括最大速率值Rmmax
在一些实施例中,量化步长的一个或多个值可以包括严格地在标准定义的最小值(例如,值一)与最大值之间的中间值qmid。例如, qmid可以是表示量化步长等于一的最小值qmin与最大值qmax之间的中间点。可替代地,值qmid可以基于由诸如速率-失真优化(RDO)的夹层编码器使用的任何优化方法进行选择。而且,处理数据集合的动作可以包括基于对应于中间值qmid的量化版本计算与量化步长的中间值qmid相关联的中间速率值Rmid。在这些实施例中,用于产生主建模数据的数据集合包括中间速率值Rmid
在一些实施例中,计算与量化步长的任意值q相关联的速率值R 可以包括用来模拟量化系数的代码大小的简单近似。例如,对量化版本中每个非零的系数coeff,R是项1+2*log2[abs(coeff)]的和。
在一些实施例中,计算与量化步长的任意值q相关联的速率值R 可以是量化版本的完全熵编码的结果或者是来自量化版本的熵编码的精确或近似模拟。
应当理解,随着所利用的量化步长的状态数量的增加,计算复杂度也增加。但是,结果产生的速率估计函数的准确性也可以随着所述数量增加。
在一些实施例中,数据集合的处理也可以包括利用一个或多个有序对来计算用于连续函数模型的拟合参数。拟合参数也可以解释为速率估计函数Rk(q)的特征描述。函数模型可以是诸如以下任一个的在本文献中所描述的一个:
Rk(q)=α+βlog(1/q)[Lin,1998];
Rk(q)=α+β/qγ[Lin,1998];
Rk(q)=基于变换残差的拉普拉斯分布的表达式[Li,2009].
在这些示例性连续函数模型中,α和β是拟合参数。拟合参数的计算可以包括利用数值方法把值分配给拟合参数,以最小化连续函数模型与对应于变换块的量化步长的所有计算的状态之间的误差,例如:
(Rmax,qmin=1),
(Rmid,qmid),
(Rmin=0,qmax)。
如在图8中所示出的,在一些实施例中,由数字电路系统执行的针对每块的操作也可以包括:对每种编码模式Mk,分别基于用于那个编码模式的变换块的一个或多个量化版本产生一个或多个重建残差,并且基于该一个或多个重建残差产生表征用于该编码模式的失真函数Dk(q)的主失真建模数据(PDMD)。(每个重建残差可以是输入块与从变换块的量化版本中相应一个得到的相应重建块之间的差异。)在这些实施例中,边信息流730也可以包括用于每种编码模式和每一块的主失真建模数据。
在一些实施例中,计算与量化步长的任意值q相关联的失真值D 可以包括从变换块的量化版本中相应一个得到的重建残差的平方误差之和(SSE)。
在一些实施例中,数据集合的处理也可以包括利用一个或多个有序对来计算用于连续函数模型的拟合参数。拟合参数也可以解释为失真估计函数Dk(q)的特征描述。函数模型可以是在本文献中所描述的一个,诸如:
Dk(q)=αq2[Sullivan,1998]。
在这个示例性连续函数模型中,α是拟合参数。拟合参数的计算可以包括利用数值方法把值分配给拟合参数,以最小化连续函数模型与对应于变换块的量化步长的所有计算的状态之间的误差,例如 (D,q)。
在一些实施例中,由数字电路系统710执行的针对每块的操作也可以包括:(1)选择对应于编码模式的一个优化模式及量化步长q 的优化值的变换块的量化版本,其中量化步长的优化值和优化的编码模式已基于由夹层编码器所使用的诸如速率失真优化(RDO)的任意优化方法选定;及(2)编码对应于优化编码模式和量化步长q的优化值的量化版本,以产生有助于编码视频流的输出位。传输电路系统可以被配置为将编码视频流发送到通信介质上。
在一些实施例中,数字电路系统710可以包括变换电路系统和编码电路系统。变换电路系统可以被配置为执行所述的接收、所述的变换、所述的针对每个编码模式Mk进行量化、所述的处理以及所述的选择。编码电路系统可以被配置为执行所述的编码对应于优化编码模式和量化步长q的优化值的量化版本。在一个实施例中,变换电路系统和编码电路系统是流水线工作的,编码电路系统比变换电路系统对画面序列的较早画面进行操作。
在一些实施例中,针对输入视频流的每一块所执行的操作可以包括:(1)利用量化步长q的优化值量化对应于编码模式中优化的一个模式的变换块,其中量化步长的优化值和优化的编码模式已被诸如速率-失真优化(RDO)的夹层编码器所使用的任意优化方法选定;及(2)编码对应于优化编码模式和量化步长q的优化值的量化变换块,以产生对编码视频流有贡献的输出位。在(1)中的量化步骤可以与利用量化步长的一个或多个值对变换块的所述量化分离,即,所执行的量化作为上述步骤(C)的一部分。传输电路系统被配置为将编码视频流发送到通信介质上。
在一组实施例中,视频编码器900可以如在图9所示出的进行配置。视频编码器可以包括数字电路系统910和传输电路系统920。 (此外,视频编码器900可以包括以上和以下结合图1-8和10-17所描述的功能,元件和实施例的任何子集。)
数字电路系统910可以被配置为对输入视频流的多个块中的每一块执行操作,操作包括:(A)变换分别对应于一个或多个编码模式的多个预测残差,以便获得用于该一个或多个相应编码模式的一个或多个相应的变换块;并且对每个编码模式Mk,处理用于该编码模式 Mk的相应的预测残差和/或相应的变换块,以获得用于该编码模式 Mk的速率建模数据(RMD)915。数字电路系统910可以用如各种以上结合数字电路系统710所描述的硬件实现。
传输电路系统920可以被配置为将边信息流930发送到通信介质上,其中边信息流包括用于每种编码模式和用于每一块的速率建模数据。
在一些实施例中,速率建模数据可以包括表征用于一个或多个编码模式中至少一个的速率估计函数Rk(q)的数据,其中q表示量化步长。
在一些实施例中,由数字电路系统执行的针对每块的操作还包括:对每种编码模式Mk,分别基于用于该编码模式的变换块的一个或多个量化版本产生一个或多个重建残差,并且基于该一个或多个重建残差产生用于该编码模式的失真建模数据,其中边信息流还包括用于每种编码模式和每一块的失真建模数据。
在一些实施例中,失真建模数据包括表征用于一个或多个编码模式中至少一个的失真估计函数Dk(q)的数据,其中q表示量化步长。
在一些实施例中,数字电路系统可以进一步被配置为产生代表输入视频流的编码版本的编码视频流,其中传输电路系统被配置为将编码视频流发送到通信介质上。
在一些实施例中,产生编码视频流的动作包括对一个或多个变换块的至少一个操作。
在一组实施例中,视频编码器可以包括如下的数字电路系统和传输电路系统。数字电路系统可以被配置为编码输入视频流以获得编码视频流,其中所述编码包括产生表征输入视频流的属性的边信息流。传输电路系统可以被配置为发送编码视频流和边信息流。
在一些实施例中,边信息流包括表征输入视频流的速率和/或失真属性的数据。
在一些实施例中,边信息流包括候选运动向量的流。
视频转码系统
在一组实施例中,视频转码系统1000可以如在图10中所示出的进行配置。(此外,视频转码系统1000可以包括以上和以下结合图 1-9和11-17所描述的特征、元件和实施例的任何子集。)
视频转码系统可以接收第一编码视频流1005,并且产生为当前正在被服务的用户设备1045定制(例如,按照诸如画面尺寸、视频格式和位速率的一个或多个因素)的第二编码视频流1035。第一编码视频流1005的单个存储的拷贝可以以不同的方式为不同的用户设备进行转码。例如,第一编码视频流1005可被转码成用于经无线网络连接的移动设备的低位速率和小画面尺寸,以及用于经有线网络连接的家庭影院的高位速率和大画面尺寸。而且,视频转码系统1000 可以例如基于从用户设备接收到的反馈,根据视频转码系统与用户设备之间的信道状态动态地调整第二编码视频流的输出位速率。第二编码视频流经通信介质1040(例如,无线网络、或有线网络、或无线和有线网络的组合)发送到用户设备。视频转码系统1000可以位于或者靠近网络的边缘,例如,如以上结合网络边缘转码器所描述的。
视频转码系统1000可以在多种环境和应用中使用。例如,视频转码系统1000可以耦合到无线网络的无线接入点(例如,基站)。因此,通信介质1040可以是接入点与用户设备之间的空中接口。在这种情况下,由于对空中接口可用的有限带宽以及信道的高动态性质,因此,定制和应用对于第二编码视频流1035的动态位速率控制的能力尤其有用。
在一种应用中,视频转码系统1000可以被内容交付网络 (CDN)的运营商使用,并且可以位于或靠近CDN的边缘。因此,由视频转码系统1000提供的输出可以通过CDN运营商控制之外的通信介质1040发送到用户设备。视频转码系统1000可以用作系统 520的网络边缘转码器。(参见图5和6。)
视频转码系统1000可以包括解码器1010、缩放单元1020和输出编码器1030。解码器1010可以被配置为接收和解码第一编码视频流1005,以获得解码视频流1015。
缩放单元1020可以被配置为把解码视频流缩放到目标画面分辨率,以便获得缩放的视频流1025。目标画面分辨率可以比在第一编码视频流1005中隐含的画面分辨率更低、相同、或者甚至更高。目标画面分辨率是可编程的。因此,当服务于不同的用户设备时,可以使用不同的目标画面分辨率。
输出编码器1030可以被配置为接收与第一编码视频流相关联的边信息流1028(例如,如各种以上所描述的),并且利用边信息流 1028编码缩放的视频流,以便获得第二编码视频流1035。
第一编码视频流1005可以解释为源视频流的编码版本。(在一些实施例中,第一编码视频流是由夹层编码器510、视频编码器 700、或视频编码器900生成的流。)边信息流1028可以包括表征源视频流的属性的元数据。例如,边信息流可以包括表征源视频流中的块的速率和/或失真属性的信息。作为另一个例子,边信息流可以包括用于源视频流中的块的运动向量。边信息流可以由输出编码器 1030使用,以用计算有效的方式做出最优(或接近最优)的编码决定,例如,关于为给定块使用哪个编码模式、或者为给定块使用量化步长的什么值、或者对于给定块哪个或哪些运动向量可能给出最优的帧间预测等的决定。
在一些实施例中,边信息流可以包括对应于N个相应编码模式的N个速率信息流,其中N大于或等于一。假定块预测基于相应的编码模式,则N个速率信息流的每个速率信息流RISk表征第一编码视频流的每一块的对应速率估计函数Rk(q),其中变量q表示量化步长。
在一些实施例中,N的值可以从一个画面到另一个变化。例如,对于第一编码视频流的给定的编码画面(诸如P画面或B画面),N 可以等于2,在这种情况下,速率信息流RIS1可以对应于帧内编码模式,并且速率信息流RIS2可以对应于帧间编码模式。可替代地, N的值可以解释为是固定的,但是对于一些画面,N个速率信息流中的一个或多个可以是静态的。例如,在N=2的情况下,帧内画面可能不需要用于帧间编码模式的速率信息流,而P画面或B画面可同时使用帧内速率信息流和帧间速率信息流。
在一些实施例中,每个速率信息流RISk用与连续函数模型相关联的两个或更多的拟合参数的对应集合表征用于每一块的速率估计函数Rk(q)。连续函数模型可以具有各种形式中的任一种。在一种实现中,连续函数模型具有形式:
Rk(q)=α+βlog(1/q)[Lin,1998]
其中α和β是拟合参数。
在一些实施例中,边信息流还包括N个失真信息流,其中假定块预测基于相应的编码模式,则N个失真信息流的每个失真信息流 DISk表征第一编码视频流的每一块的对应失真函数Dk(q)。每个失真信息流DISk可以用与连续函数模型相关联的一个或多个拟合参数的对应集合表征用于每一块的失真函数Dk(q)。连续函数模型可以具有各种形式中任一种。例如,在一种实现中,连续函数模型具有形式:
Dk(q)=αq2[Sullivan,1998]
其中α是拟合参数。
在一些实施例中,边信息流用作对输出编码器1030的速率控制过程的输入。典型的速率控制算法可以基于用于画面的聚合函数 RA(q)和用于该画面的聚合失真函数DA(q)。边信息流可以包含为缩放的视频流的给定目标画面分辨率计算RA(q)和DA(q)所需的信息。速率控制算法可以包括控制标量值λ,以实现目标位速率并避免在远程编码器的编码画面缓冲区的溢出或下溢,其中远程编码器接收第二编码视频流。
在一些实施例中,对于给定的第一编码视频流的编码的画面, N=2,在这种情况下,失真信息流DIS1可以对应于帧内编码模式,并且失真信息流DIS2可以对应于帧间编码模式。
在一些实施例中,输出编码器1030可以被配置为处理边信息流,以便获得用于缩放的视频流的每一帧的聚合速率估计函数 RA(q),其中q表示量化步长。聚合速率估计函数RA(q)可以在块编码模式和/或量化器的选择中使用。
在一些实施例中,输出编码器1030可以被配置为进一步处理边信息流,以便获得用于缩放的视频流的每一帧的聚合失真估计函数 DA(q)。聚合失真估计函数DA(q)可以在块编码模式和/或量化器的选择中使用。
在一些实施例中,输出编码器可以被配置为进一步处理边信息流,以便同时获得用于缩放的视频流的每一帧的聚合速率估计函数 RA(q)和聚合失真估计函数DA(q)。
在一些实施例中,输出编码器1030可以被配置为:(a)基于N 个速率信息流计算用于画面的聚合速率函数RA(q);(b)基于N个失真信息流计算用于该画面的聚合失真函数DA(q);(c)基于聚合速率函数RA(q)和聚合失真函数DA(q)计算用于该画面的聚合缩放函数λ(q),其中所述编码缩放的视频流包括基于通过标量值λ参数化的速率失真成本函数利用拉格朗日优化编码该画面;及(d)利用聚合速率函数RA(q)、聚合失真函数DA(q)和聚合缩放函数λ(q)控制标量值λ。
在图11中示出了由一些实施例使用来计算聚合速率函数RA(q) 和聚合缩放函数λ(q)的过程。过程1100记录画面中所有块的贡献,结果产生用于该画面的聚合速率函数RA(q)1145,即,结果产生表征作为用于该画面的量化步长的函数的速率的数据。块上的记录通过循环结构1110提出。对于量化器步长q的每个值,画面处理可以:(1) 如在1120所指示的,通过利用帧间速率估计函数Rk(q)评估函数模型来计算对应于量化器步长q的块相关的帧间速率值;(2)如在1125 所指示的,通过利用帧内速率估计函数Rk(q)评估函数模型来计算对应于qstep值的块相关的帧内速率值;(3)如在1130所指示的,选择具有较低速率值的块编码模式(帧间或帧内);(4)如在1135所指示的,将用于该块的那个较低速率值积加到画面相关的速率函数 RA(q)中;以及(5)如在1140所指示的,向画面相关的值RA(q)应用修正因子(称作ratefit),以提高估计的准确性。在量化器步长上的迭代通过循环结构1115指示。虽然图11示出在量化器步长上的循环是在块上循环的内部,但是在可替代的实施例中,嵌套可以颠倒,即,块上的循环可以是内部的循环。同样,应当理解,在这两个循环或其中一个循环上的迭代可以并行化。
在一些实施例中,可以例如基于以下表达式应用修正1140:
RA(q)←ratefit*RA(q),
其中ratefit是通过比较预测的尺寸与来自视频序列中之前画面的实际尺寸所计算的值。
如由在量化器步长q上的循环1150所指示的,在量化器步长q 的范围上计算画面相关的函数RA(q)之后,计算画面相关的lambda 函数λ(q)。画面相关的lambda函数λ(q)可以被例如速率控制算法使用。
在1155,使用了数字技术在量化器步长的范围上计算画面相关的速率导函数dRA(q)/dq的值。符号dRA(q)/dq表示相对于量化器步长求速率的导数。
在1160,可以根据以下公式针对qstep的当前值计算画面相关的lambda函数λ(q)的值:
λ(q)=-(dDA(q)/dq)/(dRA(q)/dq),
其中dDA(q)/dq是画面相关的失真导函数。
在一些实施例中,导函数dDA(q)/dq或者表征该函数的一个或多个参数可以作为过程1100的输入提供。例如:
dDA(q)/dq=常量,
其中常量的值可以通过例如实验性地离线分析一组示例视频片段来确定。
在其它实施例中,聚合失真函数DA(q)及其导数可以通过以类似于过程1100的方式添加来自用于每一块的失真估计函数Dk(q)的贡献来计算。
在一些实施例中,可以计算并存储聚合速率函数RA(q)、聚合失真函数DA(q)、及聚合缩放函数λ(q),作为一组离散的量化器步长值上的值列表,而不是作为封闭形式的方程。即使这样,每个函数都可以被认为是连续的映射,具有通过内插计算的中间值。此外,由于每一块的底层速率和失真估计函数是单调函数的事实,每个函数被理解为是一对一的(即可逆的)映射。
在计算聚合速率函数RA(q)的过程1100中,当输出分辨率由于缩放单元1020的操作而不同于输入分辨率时,在输出分辨率中对每一块的速率的贡献可以来自映射的速率估计函数R′k(q)。在输出分辨率中用于给定块的映射的速率估计函数R′k(q)等于在第一编码视频流 1005中在对应的缩放位置的一个或多个块的速率估计函数Rk(q)。
如果边信息流包括失真建模信息,则它以与映射的速率估计函数同样的方式也被记录为映射的失真估计函数。
在转码系统1000的一些实施例中,边信息流可以包括用于第一编码视频流的每一块的一个或多个候选运动向量,其中输出编码器被配置为基于该一个或多个候选运动向量为运动向量空间中受限于一个或多个邻域的每个块执行高分辨率运动向量精化。如果目标画面分辨率与第一编码视频流中隐含的画面分辨率不同,则候选运动向量可以被缩放。
在一些实施例中,解码器1010可以被配置为从第一编码视频流 1005中为每一块恢复运动向量,作为所述解码第一编码视频流的一部分。在这些实施例中,输出编码器可以被配置为基于用于该块的运动向量为运动向量空间中受限于邻域的每一块执行运动向量精化。如果目标画面分辨率与第一编码视频流中隐含的画面分辨率不同,则候选运动向量可以被缩放。
输出编码器1030可以被配置为通过在编码选择空间上最小化速率失真函数J来编码缩放的视频流的块,其中根据关系 J=R(c)+λD(c),速率失真函数J通过标量值λ进行参数化,其中向量 c表示编码选择的给定实现,其中速率函数R(c)是在实现c下通过编码该块将产生的位的数量的估计(或测量),其中失真函数D(c)是在实现c下通过编码该块将产生的块失真的估计(或测量)。编码选择可以包括量化步长q的选择。如果N大于一,则编码选择也可以包括从N个编码模式中选择编码模式。
在一些实施例中,边信息包括每一块(例如,用于P画面或B 画面)的一个或多个候选运动向量。在这些实施例中,编码选择也可以包括从包括一个或多个候选运动向量的一组向量中选择运动向量。该组向量也可以包括从第一编码视频流中恢复的解码的运动向量,作为所述解码第一编码视频流的一部分。
在一些实施例中,输出编码器1030可以被配置为:(a)基于N 个速率信息流计算用于画面的聚合速率函数RA(q);(b)基于聚合速率函数RA(q)和聚合失真函数DA(q)计算用于该画面的聚合缩放函数λ(q)。在这些实施例中,编码缩放的视频流的动作可以包括基于通过标量值λ参数化的速率失真函数利用拉格朗日优化编码该画面。此外,输出编码器可以利用聚合速率函数RA(q)、聚合失真函数 DA(q)、和/或聚合缩放函数λ(q)控制标量值λ,以避免在接收第二编码视频流的远程解码器处的编码画面缓冲区溢出和下溢。
在一些实施例中,输出编码器1030可以被配置为:(1)基于拉格朗日优化利用通过标量值λ参数化的速率失真函数编码缩放的视频流;及(2)基于边信息流动态地调整标量值λ,以防止接收第二编码视频流的远程解码器的编码画面缓冲区溢出和下溢(即,以便执行速率控制)。
在一些实施例中,用于调整标量值λ的算法可以是在包括[Lin 1995]、[Weigand1996]、[Lin 1998]或[Choi 1994]的文献中可以得到的多个基于速率失真优化的速率控制方法中的任一个。所有这些文献描述基于聚合速率函数RA(q)和聚合失真函数DA(q),或基于可以从它们计算出来的诸如DA(RA)的其它函数的控制方法。所有这些文献描述了动态地调整标量值λ以实现速率控制的控制方法。
在一些实施例中,在本文献中描述的速率控制算法导致用于应用到画面中的每一块的量化步长q的统一值。在其它的实施例中,诸如在[Choi 1994]中描述的一个实施例,如可以在边信息流中找到的,块级别的速率和失真估计函数Rk(q)和Dk(q)可以用来实现自适应量化,自适应量化导致用于输出画面的所有块的量化缩放因子q的最优集合,结果产生在目标位速率的约束下的最小失真。
在一些实施例中,视频转码系统1000也可以包括被配置为通过通信介质1040将第二编码视频流发送到(例如,与用户设备相关联的)远程视频解码器的传输电路系统。例如,传输电路系统可以包括被配置为通过空间发送信号的无线发射器(或收发器)。无线发射器可以是无线通信网络中的基站的一部分。作为另一个实施例,传输电路系统可以是用于将数据发送到诸如因特网的IP网络中的网络接口。
在一些实施例中,输出编码器1030可以被配置为接收辅助信息并且将辅助信息注入到缩放的视频流中。辅助信息可以包括以下的一个或多个:商业实体的品牌信息;广告信息;数字版权管理 (DRM)信息;提供水印功能的数字信息;及由内容提供商、内容交付服务提供商、客户或用户所请求的定制功能。
在一些实施例中,解码器1010、缩放单元1020和输出编码器 1030的至少一个利用被配置为用于在并行处理器阵列上执行的软件实现。例如,并行处理器阵列可以是二维的并行处理器阵列。
在一些实施例中,解码器、缩放单元、输出编码器在并行处理器阵列中的不同处理器子集上实现。
用于视频压缩的速率控制
本专利除其它之外还公开了用于视频压缩编码器的位速率控制方法。该位速率控制方法可以应用到,例如,任何包括混合编码器的视频压缩方法。(混合编码器使用运动补偿并且具有画面到画面之间位分配变化很大的属性。)位速率控制方法被描述为应用到H.264编码标准,预期将该标准的最优解决方案用于大量相互依赖的编码选择。但是,也可以按照所希望的使用其它标准。
此外,应当注意,位速率控制方法适用于任何硬件和/或软件实现。在一些实施例中,位速率控制方法可以与高度并行的实现相兼容,诸如那些用于HyperX处理器(CoherentLogixTM的产品)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)的实现,这些实现一般而言比基于命令式编程模型的序列化的软件实现在数据相关性上具有更多的约束。在其它的实施例中,位速率控制方法可以与序列化的软件实现相兼容。
在一些实施例中,速率控制方法应用在常规的编码器中,常规的编码器采用未压缩的视频样本作为输入,并且生成压缩的视频输出位流。在其它的实施例中,速率控制方法应用在网络边缘转码器中,网络边缘转码器例如以较低的位速率将先前编码的视频基本流转换成新的位流。在还有的其它实施例中,速率控制方法在分离式配置中适用,其中整个编码过程被分为执行分析和运动估计以生成关于视频内容的分析数据的中间流的第一部分,以及使用该中间流作为输入并且生成相兼容的视频基本流输出的第二部分。
视频压缩编码器中速率控制的一般目标是对多个编码算法选择上做出决定,所有这些选择都影响输出位流的位速率和画面质量。在质量和位速率上影响最大的编码参数是量化参数(QP),但是很多其它的选择也是重要的,诸如运动向量选择、运动模式选择、帧内模式选择和宏块模式的决定。
在一些实施例中,位速率控制方法可以利用全局方法来指导所有的编码决定,从而导致对于给定目标位速率的最小失真。位速率控制机制可以包括许多组件,这些组件被分布和集成到编码器的所有主要流水线阶段中,从视频输入与分析,到运动估计、帧内模式分析、变换编码和熵编码。
速率控制系统组件和功能
在一个实施例中,位速率控制系统可以包括缓冲区模型、速率失真优化、宏块模型、帧内复杂度分析、运动分析、画面类型选择和速率控制机制。
缓冲区模型-编码器可以维护解码器的压缩的画面缓冲区的模型,以确保由编码器生成的位流将不会在播放时下溢或溢出压缩的画面缓冲区。在H.264中,缓冲区模型被称为假设的参考解码器 (HRD),以及在MPEG-2中,它被称为虚拟缓冲区检验器 (VBV)。H.264还包括理想化的编码器和传输信道,称为假想的流调度器(HSS)。在一些实施例中,速率控制系统可以实现合并的 HRD/HSS模型。
速率失真优化基础-速率失真优化(RDO)可以提供统一的机制,用于使所有的编码决定适于目标位速率。它是用于解决资源优化配置问题的更一般的拉格朗日优化技术的特定应用。在下面更详细描述的拉格朗日乘数λ可以是由速率控制系统控制的变量。所有的编码参数和选择,诸如QP与编码模式,及产生的编码器输出的位速率,都可以取决于λ的值。
宏块模型-出于速率控制的目的,宏块模型可以用作为宏块的简化的描述,例如,代替原来的源图像样本值或其对应的变换系数。利用用于每个编码的宏块的少量拟合参数,速率控制系统可以估计或预测将导致用于那个宏块的位流和失真的位的数量,以及对于给定的λ值应该使用什么QP值。拟合参数可以从多个数据源来确定,数据源包括,例如,输入样本分析、运动估计结果和变换系数。
帧内复杂度分析一可以分析到编码器的输入,以获得表示视频帧内视频样本的复杂度的度量数字。(注意,这个分析不应该与帧内预测模式分析相混淆。)帧内复杂度分析的结果可以提供作为到宏块模型的输入。
运动分析-对于利用来自参考帧的运动补偿能够多好地预测当前画面中的宏块样本的度量可以作为运动估计过程的一部分测量来计算。这种度量可以为可能的宏块模式(帧间与帧内)选择提供基础,并且可以是到宏块模型的另一个输入。可能的宏块模型可被设置为用于较差预测的宏块的帧内模式和用于较好预测的宏块的帧间模式。
画面类型选择-画面类型的选择可以包括两种机制。一组画面 (GOP)安排可以根据用户规定的节奏确定初步的画面类型。帧内画面之间的周期被称为关键帧时间间隔,并且可以具有从1(意味着所有的帧都是帧内类型)到几百帧的值。当用户规定要使用多少个连续的B画面时,可以确定P画面之间的周期,通常在0至3的范围内。
在GOP安排确定初步的画面类型之后,场景变化检测算法可以强制所安排的B或P画面作为帧内模式进行编码。快速运动检测算法可以导致所安排的B画面被编码为P画面。覆盖所安排的画面类型会影响对后续画面的GOP安排。
场景变化和快速运动检测算法可以基于运动分析度量。运动分析度量可以作为运动估计过程的一部分来计算。
前瞻(Look Ahead)处理-帧内复杂度分析、运动分析和画面类型选择可以领先实际编码功能多个画面执行。有用的前瞻数量相当于能够存储在解码器的编码画面缓冲区中的压缩画面的数量,在一些情况下高达20帧或更多帧。对滑动前瞻窗口内所有帧的组合信息可以用作速率控制机制的一部分。
速率控制机制-速率控制机制可以是离散时间反馈控制系统。速率控制机制可以尝试尽可能地把λ的值保持为常量。基于当前画面的复杂度以及前瞻窗口中其它画面的复杂度的解码器缓冲区占用率推断会使得速率控制机制增加或减少lambda的值。离散时间系统分析技术可因此用在反馈控制系统的设计中,以确保稳定性。
图12和13-用于速率控制系统的框图
图12根据一种实施例说明了H.264编码器的第二部分或网络边缘转码器的第二部分。该第二部分可以包括变换阶段1210、熵编码阶段1215、及位流形成阶段1220。集成的速率控制组件可以包括帧内复杂度和运动分析信息的帧缓冲区A、用于标量值λ的输入、画面尺寸输出、及对于qstep选择(在变换阶段)的宏块模型的实现。画面尺寸输出可以包括来自变换阶段的临时画面尺寸(PPS)和实际画面尺寸(APS)。由于所描绘的实施例中处理的流水线性质,因此用于给定画面的实际画面尺寸的传输相对于用于那个画面的临时画面尺寸的传输可能会延迟。
图12指示各种帧缓冲区的相对位置与使用。帧缓冲区可以包括:用于当前画面亮度(luminance)和色度(颜色)样本的缓冲区 A;用于运动向量和预测样本的缓冲区B;用于每宏块的帧内复杂度和运动分析的缓冲区C;用于运动估计精化的重构样本的缓冲区D;用于编码的宏块信息的缓冲区E;及用于片数据的缓冲区F。
如所指示的,在这个实施例中,变换阶段1210接收来自缓冲区 A(当前画面亮度和色度样本)、缓冲区B(运动向量和预测样本)、缓冲区C(每宏块的帧内复杂度和运动分析)及标量值λ的数据作为输入数据,并且提供到缓冲区D(重构的样本)和缓冲区E (编码的宏块信息)的输出,以及关于临时画面尺寸的信息。在这个实施例中,熵编码阶段1215从缓冲区E(编码的宏块信息)接收其输入数据,并且输出片数据(到缓冲区F)和实际画面尺寸。位流形成阶段1220从缓冲区F接收片数据,并且产生输出位流的对应部分。
图13说明H.264编码器的第一部分的一个实施例。速率控制组件可以包括帧内复杂度分析1310、缓冲区模型1315、画面类型选择 1320、以及速率控制机制1325。在粗略运动估计阶段1330中,可以有运动分析过程。帧内复杂度信息和运动分析信息可以经缓冲区C提供给变换阶段,并且画面尺寸信息可以作为来自下游阶段的反馈接收。画面尺寸信息可以包括来自变换阶段的临时画面尺寸PPS和实际的画面尺寸(APS)。
除了之前描述的缓冲区A、B、C和D,图13的子系统可以利用缓冲区G、H、I、J和K。缓冲区G是用于当前画面的亮度和色度样本。缓冲区H是用于抽取的当前和参考画面(亮度)。缓冲区J 是用于帧内复杂度分析结果。缓冲区K是用于运动分析结果。缓冲区I是用于粗略运动向量。
如图13所指示的,帧内复杂度分析过程1310可以从缓冲区G (当前画面亮度和色度样本)接收其输入数据,并且提供输出到缓冲区J(帧内复杂度分析结果)。当前画面抽取过程1328可以向缓冲 H(抽取的当前和参考画面)提供输出。缓冲区模型1315可以接收临时画面尺寸PPS和实际画面尺寸APS,并且向速率控制机制提供输出,如图所示。粗略运动估计过程1330可以从缓冲区H(抽取的当前和参考画面)接收输入,并且向缓冲区K(运动分析结果)和缓冲区I(粗略运动向量)提供输出。画面类型选择过程1320可以从缓冲区J(帧内复杂度分析结果)和缓冲区K(运动分析结果)接收输入,并且向运动估计精化过程1335提供输出。速率控制机制1325 可以从缓冲区模型、从缓冲区J(帧内复杂度分析结果)和从缓冲区K(运动分析结果)接收输入,并且向图12的变换阶段1210和运动估计精化过程提供拉格朗日乘数λ的值。最后,运动估计精化过程 1335可以从缓冲区A(当前画面亮度和色度样本)、从缓冲区I(粗略运动向量)、从画面类型选择过程(画面类型)、速率控制机制(λ的值)和缓冲区D(进行运动估计精化的重构样本)接收输入,并且可以向缓冲区B(运动向量和预测样本)和缓冲区C(每宏块的帧内复杂度与运动分析)提供输出。
应当注意,在图12和13中示出的特定元件配置只是要作为本文所公开的发明原理的例子,并不是要把实现限制到任何特定的形式、函数或外观。
系统组件细节
以下根据一组实施例提供了关于速率控制系统的组件或特征的进一步的细节。
速率-失真优化基础
对于可能的编码选择的N维空间中的任意给定点,计算以下值是可能的:
R=速率=编码选择导致的位流中的位的数量;
D=失真=根据该选择由有损编码算法引起的失真。
失真可以基于多个距离标准的任意一个。常用的峰值信噪比 (PSNR)是基于到编码器的输入样本的块与由本地解码器提供的重构样本的块之间的平均平方误差(MSE)。利用MSE作为失真测量可以优化算法以获得改善的PSNR。
也可以使用与绝对差之和(SAD)紧密相关的平均绝对差 (MAD),以及导致用于失真的真实值的任何距离标准。
如上所述,速率-失真优化理论定义成本函数J为:
J=D+λR。
拉格朗日优化是对于给定的λ值,最小化J的技术,其中λ是拉格朗日乘数,如上所述。
选择特定的编码选择而不是其它的意味着选取最小化J的选项。量化参数QP的选择是在编码器中做出的一种这样的选择。对应于 QP的连续变量是qstep。在一些实施例中,qstep通过以下表达式与QP相关:
qstep=A*2^(QP/6),
其中A是固定常量,其中“^”表示取幂。
做出以下假设:qstep是连续变量;R(qstep)是单调递减并且其导数是连续的;以及D(qstep)是单调递增的并且其导数是连续的。可以示出qstep的两个函数都是上凹的。因此,成本函数J的最小值在 qstep的某一中间值而不是在qstepmin或qstepmax实现,如在图14中所出的。图14描绘了成本J作为qstep的函数,并且指示最优成本 Jmin是在qstep=qstepbest实现。
把失真表达为受最小成本J约束的速率函数也是可能的。可以证明,函数D(R)的形状是上凹的,如在图15中所提示的。D(R)的图形上的每个点对应于qstep的不同值。最小化J意味着J的导数是零,并且因此
dD/dR=-λ。
因此,如在图15中所指示的,λ是曲线D(R)的负斜率,并且存在λ与qstep之间的映射。
如果可以得到用于R(qstep)和D(qstep)的表达式,则它们可以用于根据以下表达式从qstep计算λ:
λ(qstep)=-(dD/dqstep)/(dR/dqstep)
反函数qstep(λ)不大可能是封闭形式的表达式。但是,给出正向函数λ(qstep)的特征描述,就很容易以任意给定的qstep值在数值上逼近反函数λ(qstep)的值。
本文所描述的速率控制系统可以依赖于这些观察。在一些实施例中,根据上述反函数,λ是由速率控制系统控制的值,并且qstep是因变量。
从概念上讲,速率控制基于λ是合理的,因为它意味着速率与失真之间的一致性平衡被应用到所有的编码器决定、整个的画面上、以及从一个画面到下一个画面。如果图像的复杂度是变化的,则这种方法如所希望的,导致向复杂区域分配更多的位。
下一部分除了其它之外还描述了用于QP选择的方法。
用于Qstep选择的宏块模型的应用
可能需要用于qstep的值,以量化离散余弦变换(DCT)运算产生的系数。映射函数qstep(lambda)存在,但是它特定于每一编码的块和宏块的编码模式(例如,帧间与帧内)。
在一些实施例中,在变换计算之后可用的信息可以用来实现实用的qstep(lambda)计算(例如,计算上/经济上可行)。可用信息可以包括用于该宏块的帧内复杂度分析结果、用于该宏块的运动分析结果、及变换系数列表。变换系数可以提供最有用的信息。由于量化的系数经固定的编码公式被熵编码,因此根据这些值估计R(qstep)是可能的。用于非零系数的以位表示的成本可以大约等于或类似于
1+2*log(|coeff|)。
类似地,可以计算D(qstep),即,作为qstep的函数的失真,的合理估计。
在一个实施例中,基于这些可用的数据,可以使用实验性方法查找实用的(例如,计算上或经济上可行的)函数来计算qstep。
因此,在一个实施例中,可以使用函数计算qstep。在一些实施例中,直到DCT计算之后,qstep才能被计算,所以可以在函数中使用系数的值(来计算qstep)。
在一些实施例中,qstep(lambda),即,作为lambda函数的 qstep,可以为每个宏块分别计算。例如,在一个实施例中,可以实现支持称为自适应量化的特征的编码器,其中QP在画面上不是常量。在理想的情况下,由于人的视觉系统更容忍复杂区域内的失真,因此在画面的复杂区域中使用较高的QP以使用较少的位。较低的 QP用在眼睛对失真较为敏感的画面的平坦区域,并且由于这样的区域缺少图像细节因此无论如何位速率是低的。qstep(lambda)的计算可以具有这种行为,即使当lambda在整个画面上保持常量。
注意,与本文所描述的方法相比,用于自适应量化的现有技术包括使用QP作为独立变量的复杂方法,其中在变换系数中没有固有地包含详细信息的情况下,QP被先验地确定。
运动分析、画面类型选择及前瞻
在一些实施例中,速率控制系统的若干个组件可以与运动估计相关。
运动分析是对能多好地根据参考画面来预测来自当前画面的宏块的度量。运动估计过程(或模块)确定用于这个预测的最佳运动向量,并且该运动向量和预测被用于编码宏块。运动估计过程还计算当前宏块被预测的有多好,并且这个品质因数或度量可以因此成为帧间编码宏块的复杂性的潜在预测器。
运动估计函数的组织可以特别地服从于这些函数的集成。运动估计通常包括粗略分辨率部分和全分辨率部分。
在一个实施例中,包括场景变化检测与快速运动检测的画面类型选择可以基于从粗略运动估计阶段输出的运动分析信息。此外,在还有的实施例中,运动估计过程的一部分可以对先于当前画面很远的输入画面执行,以影响用于速率控制和画面类型选择目的的前瞻函数。
受益于粗略运动估计的速率控制
在一些实施例中,粗略分辨率运动估计可以对当前和参考图像的抽取拷贝执行。粗略分辨率运动估计过程(或模块)可以有效地支持在非常大的搜索范围上的完全搜索算法,从而产生粗略运动向量及潜在预测器的品质因数或度量。粗略运动估计过程的两个方面可能尤其重要:它可以使用用于参考画面的源样本,而不是重构的样本,以及它可以在全分辨率运动估计开始之前在整个帧上完成其功能(例如,处理)。
这两个事实意味着粗略运动估计可以用于实现前瞻函数。预测的品质因数可以因此用来预测如需要用于速率控制机制的将来画面的尺寸。在一些实施例中,它也可以用于画面类型选择。大量差的预测通常意味着当前画面处于与参考画面不同的场景中,并且应该被强制到帧内(模式)。适当数量的差的预测可能指示其中B画面应该用P 画面替换的高速运动场景。
因此,在一些实施例中,速率控制组件可以与粗略运动估计阶段集成,如上述在图13中所示出的。在一个实施例中,粗略运动估计可以不依赖于重构的图像样本,因此它可以进行流水化并对将来的画面操作。在还有的实施例中,画面类型选择可以基于在粗略运动估计中计算的预测品质因数。此外,在一些实施例中,画面尺寸预测可以基于在粗略运动估计中计算的预测品质因数。在还有的实施例中,来自全分辨率运动估计的预测品质因数可以用作用于qstep选择的宏块模型的一部分。
缓冲区模型
如上所述,在一些实施例中,速率控制系统可以包括解码器的编码画面缓冲区的模型(即,缓冲区模型),以确保编码的位流将不会在播放时溢出或下溢出缓冲区。缓冲区模型可以被速率控制机制使用,以在当前和将来的画面被编码之后预测将来的占用率。
因此,例如,对于每个输出画面,模型可以预测编码的画面的第一个位的初始到达时间,以及最后一个位到解码器的编码画面缓冲区的最终到达时间。传输速率可以规定为最大位速率,它可以与用于恒定位速率(CBR)编码的目标位速率相同,并且可以比用于可变位速率(VBR)编码的目标位速率更大。
图16A和16B分别说明在理想情况下以及在其中实际画面尺寸不能立即可用的情况下,缓冲区模型的更新过程。
在一些实施例中,在速率控制机制可以应用到下一画面之前,缓冲区模型的操作可能需要用每一个编码画面尺寸更新其内部状态。这个特性在图16A中示出,其中,对于视频序列中的每个画面,在 1605接收到之前画面的实际尺寸,并且在1610更新缓冲区模型状态。但是,注意,精确的画面尺寸可以在编码器的熵编码阶段(例如,CABAC)计算,并且由于编码器的流水线实现,之前画面的尺寸可能不能被立即得到。
为了解决数据相关性的时序问题,可以基于用于每个宏块的量化系数值使用用于编码画面尺寸的临时值,连同运动向量的预测的位成本和编码模式信息。然后可以应用调整因子,以考虑到熵编码阶段和这个调整因子的其它缩小效应。图16B中示出了修改过程的一个实施例,其中,对于视频序列中的每个画面,在1620接收到之前画面的临时尺寸,并且在1625相应地更新缓冲区模型状态,在这之后,在1630可以接收到一个或多个较早画面的实际尺寸。作为响应,可以在1635做出对缓冲区模型状态的修正。
缓冲区模型基于临时画面尺寸值计算速率控制机制所需要的占用率信息。当精确的画面尺寸值在稍后的时间得到时,缓冲区模型对临时与实际画面尺寸之间的差异进行进一步调整。
在一些实施例中,对缓冲区模型的精确要求可能很极端。例如,可能要求最终考虑到每一单个的输出位并且在无限长的编码周期上积累零误差。用在后来获得的准确信息修正例如画面尺寸的初始估计的上述方法可足以满足这一要求。
在另一个实施例中,缓冲区状态可以包括具有位流中所有输出位之和的状态变量。可以支持诸如用于实时事件的长编码会话,因此总和可能超过能在相关数据类型中存储的最大值,相关数量类型是例如 32位的整数。缓冲区模型可以相应地包括机制来在工作过程中重新初始化总和的值,而不用损失精度,以使值保持在范围内,例如,在 32位整数的范围内。
因此,在一些实施例中,可以利用编码的画面尺寸的初始估计对每个画面更新解码器缓冲区模型,然后在稍后的时间当精确的编码的画面尺寸得到时做进一步的更新。此外,在还有的实施例中,可以提供机制来在工作过程中重新初始化输出位的总和值,而不用损失精度,以使值保持在范围内,例如,在32位整数的范围内。
速率控制机制
在一些实施例中,在输出位流中每画面的位的数目可以是 lambda值的结果,其在为该画面做出大多数编码决定之前被选择。由于视频序列的动态特性,具有在图像内、画面间以及不同场景之间变化的图像复杂度,因此lambda值可以在编码过程中进行调整。
在一个实施例中,对调整过程的输入可以包括:
1.调整之前的lambda值,以及lambda值的历史记录。
2.由缓冲区模型提供的当前解码器缓冲区占用率。
3.画面级别的帧内复杂度和运动分析信息,用于前瞻窗口内的当前和将来的画面。
4.画面类型选择。
5.根据画面类型关于编码的画面尺寸的历史信息。
这些输入可以用在二阶离散时间反馈控制系统中,从而产生调整的lambda值,以及保证没有溢出或下溢的缓冲区占用率预测。控制计算的一部分可以包括基于这些输入预测将来的画面尺寸。注意,在上述自适应量化的情形中,实际的QP值可能不通过这种画面级别的速率控制机制计算。
反馈控制系统的首要目标可以是对维护缓冲区兼容性所需的 lambda做最小的调整,从而产生用于给定目标位速率的最好的(或接近最好的)一致性的感知质量体验。因此,在一些实施例中,如上所述,可以使用各种实现和计算来根据输入数据调整lambda。
更一般地,在一些实施例中,可以接收输入视频流。可以为输入视频流的多个画面中的每一个计算拉格朗日乘数lambda。用于输出视频流的位速率可以基于输入视频流和用于多个画面中的每一个的 lambda进行动态地控制。在一个实施例中,用于lambda的一个值可以用于每个画面中的所有编码决定,然后按照需要对画面间的速率控制进行调整。
网络边缘转码器
网络边缘转码器概念是具有减少的计算足迹(footprint)的编码器版本。其目标是用最少的能耗和比单独编码器更高的信道密度实时地产生高质量的压缩视频输出。它通常通过利用压缩的视频基本流作为其输入来实现这个目标,已经与目标输出有相同的分辨率和帧速率,但是比目标输出具有更高的位速率。在一些实施例中,这可以允许网络边缘转码器省略粗略运动估计阶段。
图17说明了示例性网络边缘转码器(部分,例如,第一部分),其中粗略运动估计中的帧内复杂度分析和运动分析被输入位流分析取代,输入位流分析数据挖掘由之前的输入位流的编码做出的决定和结果。注意,如在图12中所示出的,网络边缘转码器的第二部分可以与常规的压缩视频编码器相同,因此为了简洁起见不再次呈现。
如图17所示,输入位流解码过程(或模块)1710可以接收输入位流作为输入,并且可以提供输出到缓冲区A(当前画面亮度和色度样本)。如还示出的,输入位流分析过程(或模块)1715也可以接收输入位流作为输入,并且提供输出到缓冲区I(粗略运动向量)、到缓冲区J(帧内复杂度分析结果)和缓冲区K(运动分析结果)。画面类型选择过程(或模块)可以从缓冲区J(帧内复杂度分析结果)和缓冲区K(运动分析结果)接收输入,并且可以提供输出(画面类型)到运动估计精化过程(或模块)。速率控制机制也可以从缓冲区J(帧内复杂度分析结果)和缓冲区K(运动分析结果)以及从缓冲区模型接收输入,并且可以提供输出(lambda)到运动估计精化过程(或模块)和(例如,图12的)变换阶段,如所示出的。最后,运动估计精化过程可以从缓冲区A(当前画面亮度和色度样本)、从缓冲区I(粗略运动向量)、从缓冲区D(用于运动估计精化的重构样本)、从画面类型选择过程(画面类型)、及从速率控制机制(lambda)接收输入,并且可以提供输出到缓冲区B(运动向量和预测样本)和缓冲区C(每宏块的帧内复杂度和运动分析)。
注意,在一些实施例中,网络边缘转码器可以实现与独立的编码器相同的(或类似的)变换编码与速率控制系统,但是也可以使用来自在输入位流中包含的量化系数的信息,以获得速率控制所需的运动分析和帧内复杂性分析。相对于利用粗略运动估计阶段进行分析从独立编码器所能获得的QP值,这会导致对所使用的QP值更精确的速率和失真评估。在一些实施例中,这个信息可以与附加的帧内复杂度分析及系数列表一起使用,以根据当前的lambda值重新量化每个再次编码的宏块。尽管最终的实时编码步骤的计算足迹可能少于独立的编码器,但是影响与输出质量会与双通道编码器相同(或相似)。
因此,在一些实施例中,根据本文所公开技术的速率控制组件可以集成到网络边缘转码器的概念中,如在图17中所示出的。
更具体而言,在一些实施例中,在网络边缘转码器配置上,速率控制可以从输入位流中包含的量化系数与其它编码模式信息中获得高质量的运动分析和帧内复杂度分析度量。
分离式编码器配置
在还有的实施例中,本文所描述的速率控制算法或技术也可以应用在分离式编码器配置中。在分离式编码器配置中,对编码和速率控制的许多处理和分析可以在编码器的第一部分中执行。然后,第一部分的结果,包括但不限于运动分析、粗略运动向量、和/或帧内复杂度分析,可以储存在关于内容的分析数据的中间流中。数据的中间流可以包括兼容的压缩的视频基本流加上附加的分析数据,或者可以是包含所有完成视频内容编码所需信息的非标准数据格式。然后,编码器的第二部分可以使用中间流作为输入并完成编码过程。
类似于网络边缘转码器,分离式编码器配置的首要目标可以是具有最小可能的计算、物理尺寸、和用于编码过程的第二部分的功率足迹。第二部分可以相应地为用作网络边缘设备进行优化,并且可以用比完整的压缩的视频编码器更高的信道密度进行部署。编码器的第二部分也可以包括特定于流的处理,诸如特定于流的位速率或品牌,使得各个输出流可被个性化到一个或多个特定的接收器。
在一个实施例中,以上编码器划分可以使得编码过程的第一部分执行一次并且结果被保存。随后,编码过程的第二部分可以按对多个接收器的需要被执行多次,所有的都利用不同的编码参数或流个性化。任何特定于个别输出流或接收器的处理可以限定到编码过程的第二部分。
因此,在一些实施例中,用于编码器的分离式配置可以用于最小化计算、物理尺寸、和/或用于编码器第二部分的功率足迹的目标,使得它被优化成适于用作网络边缘设备。在各种实施例中,编码器在第一部分和第二部分之间的划分可以以各种方式中任一种进行。换句话说,相关的组件、过程或模块可以以任何所期望的方式分布在这两个划分之间。而且,在一个实施例中,编码过程的第一部分的结果可以存储在包含由第二部分所需的全部信息的中间流格式中,以在后续的操作中完成编码过程。此外,在一些实施例中,编码器可被划分为两个部分,其中任何特定于个别输出位流或接收器的处理都在第二部分中执行。
在本说明书中描述的技术和系统可以在各种类型的产品或应用中的任一种中采用,包括蜂窝电话、无绳电话、电视、胶片展示、计算机、电缆调制解调器、电缆机顶盒及其它如所希望的那样。而且,本文所公开的技术可以如所希望的那样通过软件和/或硬件来实现。
虽然已经相当详细地描述了以上实施例,但是对本领域技术人员来说,一旦上述公开内容被完全理解,许多变化和修改将变得显而易见。还应当强调的是,上述实施例只是实现的非限制性例子。意在将下列权利要求解释为包括所有这些变化和修改。

Claims (1)

1.一种用于向用户设备交付视频内容的方法,所述方法包括:
利用速率控制机制来调整拉格朗日乘数,以便使用视频内容项的边信息流对编码的视频流转码,其中根据用户设备的VPC配置来执行所述转码,其中视频内容项的边信息流包括与相应的多个编码模式对应的多个速率信息流,其中假定块预测基于相应的编码模式,则所述多个速率信息流的每个速率信息流RISk表征对应的编码视频流的每一块的对应速率估计函数Rk(q),其中q是量化步长;和
通过通信介质将相应的目标编码视频流发送到用户设备。
CN201911002072.9A 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构 Active CN111405315B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261658761P 2012-06-12 2012-06-12
US61/658,761 2012-06-12
CN201380038883.9A CN104641651B (zh) 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构
PCT/US2013/045256 WO2013188457A2 (en) 2012-06-12 2013-06-11 A distributed architecture for encoding and delivering video content

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380038883.9A Division CN104641651B (zh) 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构

Publications (2)

Publication Number Publication Date
CN111405315A true CN111405315A (zh) 2020-07-10
CN111405315B CN111405315B (zh) 2022-04-12

Family

ID=48699957

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380038883.9A Active CN104641651B (zh) 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构
CN201911002072.9A Active CN111405315B (zh) 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380038883.9A Active CN104641651B (zh) 2012-06-12 2013-06-11 用于编码和交付视频内容的分布式体系结构

Country Status (5)

Country Link
US (1) US11483580B2 (zh)
EP (2) EP2859729B1 (zh)
JP (3) JP6247286B2 (zh)
CN (2) CN104641651B (zh)
WO (1) WO2013188457A2 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
US8806558B1 (en) 2013-09-20 2014-08-12 Limelight Networks, Inc. Unique watermarking of content objects according to end user identity
US8775648B1 (en) 2013-12-30 2014-07-08 Limelight Networks, Inc. Control systems and methods for cloud resource management
US9137285B2 (en) 2013-10-21 2015-09-15 Broadcom Corporation Adaptive audio video (AV) stream processing
US20150118959A1 (en) * 2013-10-28 2015-04-30 Nicolas Jean Petit Platform framework for wireless media device simulation and design
US9979796B1 (en) 2014-07-16 2018-05-22 Tensera Networks Ltd. Efficient pre-fetching notifications
US11095743B2 (en) 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
WO2016009285A1 (en) 2014-07-16 2016-01-21 Tensera Networks Ltd. Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day
US20160037176A1 (en) * 2014-07-30 2016-02-04 Arris Enterprises, Inc. Automatic and adaptive selection of profiles for adaptive bit rate streaming
US10506027B2 (en) 2014-08-27 2019-12-10 Tensera Networks Ltd. Selecting a content delivery network
US9479720B1 (en) * 2014-09-16 2016-10-25 Amazon Technologies, Inc. Method and/or apparatus for frame accurate hot failover
US9827500B1 (en) 2014-12-22 2017-11-28 Amazon Technologies, Inc. Associated content item instances
US9814987B1 (en) * 2014-12-22 2017-11-14 Amazon Technologies, Inc. Spectator feedback and adaptation
US10595028B2 (en) * 2015-02-20 2020-03-17 Harmonic, Inc. Encoding/transcoding based on subjective video quality preferences
EP3281413B1 (en) * 2015-04-09 2021-01-20 Dejero Labs Inc. Systems, devices and methods for distributing data with multi-tiered encoding
US9838725B2 (en) * 2015-04-27 2017-12-05 Century Link Intellectual Property LLC Intelligent video streaming system
US9723470B1 (en) 2015-04-30 2017-08-01 Tensera Networks Ltd. Selective enabling of data services to roaming wireless terminals
US10841601B2 (en) 2015-06-23 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
CN108353198B (zh) 2015-09-15 2021-07-27 交互数字麦迪逊专利控股公司 用于提供功率节省媒体内容的方法和装置
KR101780782B1 (ko) * 2016-07-08 2017-09-21 엔트릭스 주식회사 클라우드 스트리밍 서비스 제공 방법 및 이를 위한 장치
CN107819543A (zh) * 2016-09-12 2018-03-20 北京百度网讯科技有限公司 数据传输方法及装置
EP3322187B1 (en) * 2016-11-10 2020-01-29 Alcatel Lucent Method and transcoder for video transcoding
EP3322189B1 (en) * 2016-11-10 2019-12-25 Alcatel Lucent Method and system for controlling video transcoding
GB2576286B (en) * 2017-04-21 2022-09-07 Zenimax Media Inc Systems and methods for deferred post-processes in video encoding
EP3613014B1 (en) * 2017-04-21 2023-10-18 Zenimax Media Inc. Player input motion compensation by anticipating motion vectors
US10462203B2 (en) * 2017-06-13 2019-10-29 Wowza Media Systems, LLC Hardware encoder
CN110945494A (zh) * 2017-07-28 2020-03-31 杜比实验室特许公司 向客户端提供媒体内容的方法和系统
US10531134B2 (en) 2017-11-10 2020-01-07 Akamai Technologies, Inc. Determining a time budget for transcoding of video
US10397518B1 (en) * 2018-01-16 2019-08-27 Amazon Technologies, Inc. Combining encoded video streams
CN110198474B (zh) 2018-02-27 2022-03-15 中兴通讯股份有限公司 一种码流处理方法及装置
US10834475B1 (en) * 2018-03-15 2020-11-10 Amazon Technologies, Inc. Managing encoding parameters
EP3788768B8 (en) * 2018-04-30 2022-11-16 Dolby International AB Methods and systems for streaming media data over a content delivery network
US11234034B2 (en) * 2018-11-02 2022-01-25 Netflix, Inc. Techniques for encoding a media title via multiple encoders
CN111225277A (zh) * 2018-11-27 2020-06-02 北京达佳互联信息技术有限公司 转码方法、转码装置和计算机可读存储介质
CN109581382A (zh) * 2018-12-11 2019-04-05 南京信息工程大学 一种基于C#与Fortran混编技术的球形云及降水粒子群散射仿真方法
US11259035B2 (en) * 2019-03-15 2022-02-22 Ati Technologies Ulc Macroblock coding type prediction
US11132122B2 (en) 2019-04-11 2021-09-28 Ricoh Company, Ltd. Handwriting input apparatus, handwriting input method, and non-transitory recording medium
WO2021009155A1 (en) * 2019-07-17 2021-01-21 Koninklijke Kpn N.V. Facilitating video streaming and processing by edge computing
WO2021118557A1 (en) 2019-12-11 2021-06-17 Google Llc Methods, systems, and media for selecting formats for streaming media content items
CN113473147B (zh) * 2021-05-17 2022-08-09 浙江大华技术股份有限公司 一种视频码流的后处理方法、装置和计算机可读存储介质
US11743478B2 (en) * 2021-06-15 2023-08-29 International Business Machines Corporation Video stream transcoding with reduced latency and memory transfer
CN113691813B (zh) * 2021-10-25 2022-02-22 苏州浪潮智能科技有限公司 一种转码卡使用方法、系统、存储介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816151A (zh) * 2005-01-31 2006-08-09 联发科技股份有限公司 图框层速率控制的视讯编码方法和系统
CN101098483A (zh) * 2007-07-19 2008-01-02 上海交通大学 以图像组结构为并行处理单元的视频集群转码系统
CN101198035A (zh) * 2008-01-10 2008-06-11 杭州华三通信技术有限公司 视频监控方法、视频转移分发方法、装置及视频监控系统
FR2933837A1 (fr) * 2008-12-10 2010-01-15 Thomson Licensing Procede de codage, procede et dispositif de transcodage et flux de donnees image codees.
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
CN102067610A (zh) * 2008-06-16 2011-05-18 杜比实验室特许公司 基于视频编码的切片依赖性的码率控制模型适配
US20120047535A1 (en) * 2009-12-31 2012-02-23 Broadcom Corporation Streaming transcoder with adaptive upstream & downstream transcode coordination

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333657B (en) * 1998-01-22 2002-08-21 Snell & Wilcox Ltd Video signal compression
US6490320B1 (en) * 2000-02-02 2002-12-03 Mitsubishi Electric Research Laboratories Inc. Adaptable bitstream video delivery system
US6542546B1 (en) * 2000-02-02 2003-04-01 Mitsubishi Electric Research Laboratories, Inc. Adaptable compressed bitstream transcoder
WO2001069936A2 (en) * 2000-03-13 2001-09-20 Sony Corporation Method and apparatus for generating compact transcoding hints metadata
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
GB2387287B (en) 2002-04-05 2006-03-15 Snell & Wilcox Limited Video compression transcoding
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
KR100950525B1 (ko) 2002-12-02 2010-03-30 삼성전자주식회사 트랜스코딩 장치 및 방법, 이에 사용되는 타겟비트할당 및픽처 복잡도 예측 장치 및 방법
US7860161B2 (en) * 2003-12-15 2010-12-28 Microsoft Corporation Enhancement layer transcoding of fine-granular scalable video bitstreams
US8832434B2 (en) * 2004-02-13 2014-09-09 Hewlett-Packard Development Company, L.P. Methods for generating data for describing scalable media
JP4108640B2 (ja) * 2004-04-27 2008-06-25 三菱電機株式会社 映像伝送システム
US8879857B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US8761248B2 (en) 2006-11-28 2014-06-24 Motorola Mobility Llc Method and system for intelligent video adaptation
US20080181298A1 (en) 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
JP2008306273A (ja) * 2007-06-05 2008-12-18 Nec Corp 動画像提供システム、方法、装置、プログラム
EP2183898B1 (en) 2007-07-05 2016-09-14 Coherent Logix Incorporated Mobile television broadcast system
US8866971B2 (en) * 2007-12-17 2014-10-21 Ati Technologies Ulc Method, apparatus and machine-readable medium for apportioning video processing between a video source device and a video sink device
US8798137B2 (en) * 2008-02-29 2014-08-05 City University Of Hong Kong Bit rate estimation in data or video compression
JP2009260818A (ja) * 2008-04-18 2009-11-05 Nec Corp サーバ装置とコンテンツ配信方法とプログラム
WO2010033565A1 (en) * 2008-09-16 2010-03-25 Dolby Laboratories Licensing Corporation Adaptive video encoder control
US8654849B2 (en) * 2008-12-22 2014-02-18 Arris Enterprises, Inc. Integrated transcoding
CN102365871A (zh) * 2009-04-03 2012-02-29 日本电气株式会社 分配系统、分配方法、变换装置及程序
EP2481217A4 (en) * 2009-09-26 2014-02-19 Disternet Technology Inc SYSTEM AND METHOD FOR MICROCLOUD COMPUTING
US8751677B2 (en) 2009-10-08 2014-06-10 Futurewei Technologies, Inc. System and method to support different ingest and delivery schemes for a content delivery network
US20110145859A1 (en) * 2009-12-15 2011-06-16 At&T Intellectual Property I, L.P. System and method for detachable media devices and content
JP5389747B2 (ja) * 2010-06-17 2014-01-15 株式会社日立製作所 コンテンツ変換システム、およびコンテンツ変換方法
US9185439B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
JP2012099890A (ja) * 2010-10-29 2012-05-24 Sony Corp 画像処理装置、画像処理方法、および画像処理システム
US8887207B2 (en) * 2012-01-12 2014-11-11 The Directv Group, Inc. Method and system for remotely transcoding content

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1816151A (zh) * 2005-01-31 2006-08-09 联发科技股份有限公司 图框层速率控制的视讯编码方法和系统
CN101098483A (zh) * 2007-07-19 2008-01-02 上海交通大学 以图像组结构为并行处理单元的视频集群转码系统
CN101198035A (zh) * 2008-01-10 2008-06-11 杭州华三通信技术有限公司 视频监控方法、视频转移分发方法、装置及视频监控系统
CN102067610A (zh) * 2008-06-16 2011-05-18 杜比实验室特许公司 基于视频编码的切片依赖性的码率控制模型适配
US20100017516A1 (en) * 2008-07-16 2010-01-21 General Instrument Corporation Demand-driven optimization and balancing of transcoding resources
FR2933837A1 (fr) * 2008-12-10 2010-01-15 Thomson Licensing Procede de codage, procede et dispositif de transcodage et flux de donnees image codees.
US20120047535A1 (en) * 2009-12-31 2012-02-23 Broadcom Corporation Streaming transcoder with adaptive upstream & downstream transcode coordination

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIANG-JIN 等: "Bit-Rate Control Using Piecewise Approximated Rate-Distortion Characteristics", 《CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE TRANSACTIONS》 *

Also Published As

Publication number Publication date
US11483580B2 (en) 2022-10-25
EP2859729B1 (en) 2020-09-16
JP2018057022A (ja) 2018-04-05
WO2013188457A2 (en) 2013-12-19
CN104641651A (zh) 2015-05-20
JP2019075825A (ja) 2019-05-16
EP2859729A2 (en) 2015-04-15
EP3767961B1 (en) 2023-03-29
US20130343450A1 (en) 2013-12-26
JP6703150B2 (ja) 2020-06-03
EP3767961A1 (en) 2021-01-20
JP2015523805A (ja) 2015-08-13
WO2013188457A3 (en) 2014-04-17
JP6247286B2 (ja) 2017-12-13
JP6473213B2 (ja) 2019-02-20
CN111405315B (zh) 2022-04-12
CN104641651B (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
JP6703150B2 (ja) ビデオコンテンツの符号化及び配信のための分散アーキテクチャ
Chen et al. Recent advances in rate control for video coding
KR101518358B1 (ko) 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어
US9906785B2 (en) Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
EP1549074A1 (en) A bit-rate control method and device combined with rate-distortion optimization
WO2010005691A1 (en) Rate control model adaptation based on slice dependencies for video coding
KR20090024134A (ko) 비디오 인코더용 스케일러블 레이트 제어 시스템
US20160234496A1 (en) Near visually lossless video recompression
He et al. Linear rate control and optimum statistical multiplexing for H. 264 video broadcast
Cai et al. Real-time constant objective quality video coding strategy in high efficiency video coding
US20220103832A1 (en) Method and systems for optimized content encoding
Lim et al. A perceptual rate control algorithm based on luminance adaptation for HEVC encoders
Wu et al. Rate control in video coding
KR101099261B1 (ko) 인코더와 인코딩 방법 및 이를 수록한 저장매체
Xu et al. Rate control for consistent visual quality of H. 264/AVC encoding
Wang et al. Single-input-multiple-ouput transcoding for video streaming
Sanz-Rodríguez et al. A parallel H. 264/SVC encoder for high definition video conferencing
Seo et al. Adaptive rate control algorithm based on logarithmic R–Q model for MPEG-1 to MPEG-4 transcoding
Smith Receiver-Driven Video Adaptation
Bhuyan et al. Motion adaptive video coding scheme for time‐varying network
Vizzotto et al. Neighbor-based Fast Rate Control Scheme for Basic Unit Layer for H. 264/AVC Standard
Basavaraju et al. Rate quality factor optimization for vp8 video codec for mobile communication applications
Huang et al. MMC02-2: H. 264 Bit-rate Control Using the 3-D Perceptual Quantization Modeling
Liu Fast and adaptive H. 264/AVC video coding for network based applications
Changuel Quality-oriented control of video delivery over wireless channels

Legal Events

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