CN102172020A - 用于发送视频的方法和设备 - Google Patents

用于发送视频的方法和设备 Download PDF

Info

Publication number
CN102172020A
CN102172020A CN2009801353578A CN200980135357A CN102172020A CN 102172020 A CN102172020 A CN 102172020A CN 2009801353578 A CN2009801353578 A CN 2009801353578A CN 200980135357 A CN200980135357 A CN 200980135357A CN 102172020 A CN102172020 A CN 102172020A
Authority
CN
China
Prior art keywords
frame
media
size
encoded
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801353578A
Other languages
English (en)
Other versions
CN102172020B (zh
Inventor
周炜
布若迪·肯瑞克
马尔万·A·贾布里
阿布希舍克·梅赫罗拉
王维智
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.)
Dilithium Networks Inc
Original Assignee
Dilithium Networks 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 Dilithium Networks Inc filed Critical Dilithium Networks Inc
Publication of CN102172020A publication Critical patent/CN102172020A/zh
Application granted granted Critical
Publication of CN102172020B publication Critical patent/CN102172020B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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/142Detection of scene cut or scene change
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Abstract

本发明公开了一种发送编码媒体帧的方法,包括:确定包括一媒体帧大小的多个媒体帧大小,发送包括所述多个媒体帧大小的元素,并且之后,接收输入媒体帧。该方法还包括根据该媒体帧大小处理该输入媒体帧来提供编码媒体帧,以及发送该编码媒体帧。

Description

用于发送视频的方法和设备
相关申请的交叉引用
本申请要求2008年9月9日提交的美国临时申请No.61/095,587的优先权,该申请因所有用途被通过引用全部结合于此。
技术领域
本发明一般地涉及电信和广播领域,并且更具体地,针对用于电信网络上的发送的数字多媒体处理。具体地,本发明描述了各种方法和设备,它们可以用来发送媒体,特别是视频,以用于在多种情形中使用。具体地,本发明描述了用于发送根据样式编码的媒体的方法。此外,本发明还描述了发送媒体以用于3GP文件的渐进式下载。
背景技术
目前的网络,例如第三代(3G)移动网络、宽带、线缆、DSL、Wi-Fi和WiMax网络允许它们的用户访问丰富的多媒体服务,包括音频、视频和数据。其它网络,例如下一代网络、4G和长期演进(LTE),将在媒体丰富的通信中继续该趋势。
典型的用户期望它们的媒体服务和应用是可在服务之间无缝地访问和集成的并且是可以以透明的方式让具有不同能力和访问技术和协议的多个不同客户端访问的。需要满足这些期望以成功地递送某些收益产生服务并跨越运营商/提供商的不同网络而确保服务的品牌化。
不同服务提供商可以采用不同的网络技术或网络技术的组合来将访问能力扩展到对用户和用户体验尽可能最宽的范围。一个挑战是适配媒体来迎合不同的网络能力,以使得向可能依赖于用户的位置(例如,在家上网)或是移动的(例如,正在通勤的)或是无线的(例如,在网络咖啡馆中)而具有不同的访问能力的用户提供吸引用户的体验。网络能力也可以被扩增。
连接到这些服务的当前可用的装置的范围具有大范围的固有能力并且通过这些能力中的许多能力被具体环境缩减。转变到那些能力或克服装置中的固有缺陷或情境缺陷以向装置的用户提供高质量服务也越来越重要。某些装置可能仅使用专用递送技术或递送技术的子集来接收媒体。具体地,某些装置处理非常适合于递送所存储的和直播的内容的RTSP流,而某些其它装置处理非常适于递送存储的内容而不是直播内容的HTTP流(也称为渐进式下载)。某些装置或网络可能仅能够以恒定比特率接收或发送数据。某些装置也可能在访问具体种类的媒体时有特定约束,以使得它们仅使用具体标准的恰当子集来操作。
由于服务提供商期望提供不同的多媒体应用(直播的内容和存储的内容两者)给最宽的用户基础并且在不同的访问方法(宽带固定、无线、移动)、技术(DSL、Cable、Edge、3G、Wi-Fi、4G、WiMax、LTE)、访问协议(RTSP、SIP、HTTP)和装置上不受妨碍,所以本领域中需要用于在多媒体电信网络和装置之间接收和发送多媒体信息的改进的方法和系统。
发明内容
本发明涉及向多媒体装置的用户提供多媒体的方法、系统和设备。本发明的实施例具有许多潜在应用,例如但不限于,将媒体提供给根据协议或媒体标准不兼容性而以其他方式不能访问该媒体的装置,不论媒体和/或信令和/或媒体容器/递送格式约束如何都提供直播媒体的能力,递送恒定比特率媒体,根据期望的样式递送媒体,开发媒体的统计复用,以及其他,这些在本说明书中更全面地描述。
相比传统技术,通过本发明可以使能或实现许多益处。例如,本发明的实施例提供使用不迎合连续直播流的容器的直播媒体流递送。本发明的其他实施例提供恒定比特率媒体递送,其中不仅总体比特率是恒定的,而且帧内帧和预测帧的比特率也是恒定的。因此,媒体可以递送给没有应付可变大小媒体组块(chunk)的能力的装置或在这样的情形中递送。
本发明的其它实施例提供计算上非常高效的迭代压缩技术,其再次利用运动矢量来节省处理,并提供准确的质量参数估计来降低总体编码成本。
根据本发明一个实施例,提供一种发送编码媒体样本的方法。该方法包括:确定包括一样本大小的多个样本大小以及发送包括这多个样本大小的元素。该方法还包括之后接收媒体样本并根据该样本大小来编码该媒体样本以提供编码媒体样本。该方法还包括发送该编码媒体样本。
根据本发明另一实施例,提供一种产生编码媒体的方法。该方法包括确定包括多个样本大小的媒体编码样式。该方法还包括根据这多个样本大小来产生多个编码媒体样本。
根据该实施例,可以实现这些益处中的一个或多个,以及其它益处。本发明的目的、特征和优势就我们的知识所及是新颖的,并且以所附权利要求中的特性进行阐述。本领域技术人员结合附图参考以下描述将最好地理解本发明(不论其组织还是操作方式)以及其目的和优势。
附图说明
图1图示出根据本发明一个实施例的体系架构;
图2图示出根据本发明一个实施例的预测模块;
图3图示出根据本发明一个实施例的具有相同值的样本大小的样式的示例;
图4图示出根据本发明一个实施例的具有不同值的样本大小的样式的示例;
图5图示出根据本发明一个实施例的生成虚“moov”箱的示例;
图6图示出根据本发明一个实施例的视频样本的填充;
图7图示出根据本发明一个实施例的视频样本的填充;
图8图示出根据本发明一个实施例控制视频编码器;
图9A图示出根据本发明一个实施例一帧内比特数与Qstep的倒数的近似线性关系;
图9B图示出根据本发明一个实施例的连续帧的类似的近似线性关系;
图10图示出根据本发明一个实施例使用预测的质量参数来编码帧的算法;
图11A图示出根据本发明一个实施例的用于单点线性预测处理的算法;
图11B图示出根据本发明一个实施例的用于双点线性预测处理的算法;
图12图示出根据本发明一个实施例的用于再次利用运动估计来编码宏块的算法;以及
图13图示出根据本发明一个实施例的分段的“moov”盒格式。
具体实施方式
在2008年2月11日提交的名称为”METHOD AND APPARATUS FOR THE ADAPTATION OF MULTIMEDIA CONTENT IN TELECOMMUNICATIONS NETWORK”(用于通信网络中的多媒体内容的适配的设备和方法)的美国专利申请第12/029,119号中记载了一种多媒体/视频适配设备(以及与之有关的方法),该申请的公开因为多种用途而通过引用被全部结合于此。该平台虑及新颖的应用的部署,并且可以用作在其他使用中提供装置和网络最优的适配的媒体。这里这些新颖的方法、服务、应用和系统的公开是基于Dilithium Content Adaptor平台的。然而,本领域技术人员将认识到,这些方法、服务、应用和系统可以应用于在不利用创新能力的情况下进行必要的增加、移除或修改的其它平台。
参考文献
[1]ISO/IEC 14496-12:2005 Information technology-Coding of audio-visual objects-Partl2:ISO base media file format
[2]ISO/IEC 14496-14,Information technology-Coding of audio-visual objects-Part 14:MP4 file format
[3]ISO/IEC 14496-14,Information technology-Coding of audio-visual objects-Part 15:AVC File format
[4]3GPP TS 26.244 V7.0.0 3GPP file format
[5]3GPP2 C.S0050-B Version 1.0,18 May 2007,3GPP2 Formats for Multimedia Services
媒体递送
媒体通常或者使用可变比特率(VBR)方法或者使用恒定比特率(CBR)方法来发送。在许多情形中,优选恒定比特率,因为其限制递送媒体所需要的带宽并且同时实现了某种目标媒体质量。当使用CBR时,针对比特率设置每秒千比特(kbps)的目标。例如,视频流可以以44kbps、64kbps等以CBR模式发送。CBR由于对目标比特率的严格限制,因此比VBR更具挑战。
诸如ITU-T建议H.261、H.263和H.264以及MPEG4-part 2之类的视频编解码器对视频序列进行编码来产生包含I帧(帧内编码帧)和P帧(预测帧)的比特流。I帧是可以独立使用的,而P帧依赖于之前的(或在某些情况中,将来的)帧。分配给I帧和P帧的比特数以各种方式(主要通过通常称为QP的量化参数)来控制。这样的视频编码器的输出可以认为是I帧和P帧的序列。例如“样式”I.P.P...P.I即这样的一个序列,其中两个I帧之间的P帧的数目可以不同(关键帧间隔)。I帧或P帧所要求的比特或字节的数目可以称为样本大小。
通过诸如互联网之类的分组交换网络来递送媒体内容的最常见的方法是实时流传送和渐进式下载。实时流传送利用实时传输协议/实时流传送协议(RTP/RTSP)来将内容从流传送服务器递送到客户端。媒体由客户端软件播放,但是除了某些缓冲以外一般不被存储。渐进式下载允许用户在正从网络服务器下载媒体时播放媒体。实时流传送常常比渐进式下载更适合直播事件的网络广播、长片视频以及24/7互联网广播和TV频道的递送。然而,对于不支持RTSP传送的某些用户装置,例如苹果公司的iPhone,HTTP渐进式下载是唯一的选择。
ISO基本媒体文件格式[1]是形成许多其他更具体的文件格式基础的一般文件格式。该格式包含用于诸如音频/视频呈现之类的媒体的时间序列的定时、结构和媒体信息。ISO基本媒体文件格式的某些扩展和变体是MP4、MOV、3GPP和3GPP2[2][3][4][5]。3GPP和3GPP2文件格式分别由第三代合作伙伴项目和第三代合作伙伴项目2定义。这些标准力争提供通过最近的或新演进的宽带移动网络(第三代网络)进行丰富多媒体到最新的支持多媒体的无线装置的统一递送。
渐进式下载简档3GPP/3GPP2文件通常包括3个ISO基本媒体盒:“ftyp”、“moov”和“mdat”。“ftyp”盒定义文件类型和兼容性,其通常是被预先确定的。“moov”盒描述视频或音频数据如何被存储。“mdat”盒包含视频数据或音频数据。
以下步骤描述如何以传统方式生成3GPP文件的示例。
1.创建“ftyp”盒。
2.创建“mdat”盒。解析视频和/或音频比特流来收集信息,所述信息包括视频或音频帧的数目、每个音频和视频帧的大小、编解码器类型、媒体的持续时间以及媒体的总大小等等。然后,音频或视频帧被添加到“mdat”盒中。它们可以根据需要被交叉存取。3GPP文件中的每个音频或视频帧的偏移被记录。
3.利用步骤2中所收集的全部信息,3GPP文件复用器(简称为复用器)将创建“moov”盒并进行写入。
在传统方法中,只有在整个序列的媒体信息被收集到时,“moov”盒才能被生成。依赖于3GPP文件的简档,“moov”盒在文件中的位置可以是在“mdat”盒之前或之后。对于渐进式下载或流传送简档,“moov”盒被置于“mdat”盒之前,因为解复用器(简称为解复用器)在拥有“moov”盒中的信息之前无法解复用“mdat”。
然而,该方法对于流传送直播内容(即,TV)并没有什么用处。对于直播流传送应用,3GPP必须随时被生成。等待收集足够的媒体信息来在流的末尾生成“moov”盒将延迟内容的递送,这意味着发送在整个直播馈送期间必然会被延迟,这在直播服务中是不可接受的。[1]中规定的电影片段盒被提供来避免这样的长时间延迟,但是其并不为某些用户装置(例如,iPhone)所支持。
图1描述用于为HTTP渐进式下载随时生成3GPP文件的系统体系架构。不是收集全部媒体信息然后在末尾生成“moov”盒,而是,该系统的概念是在拥有全部媒体信息之前生成虚“moov”盒,并发送虚“moov”盒,然后如已经发送的虚“moov”盒中所定义的那样控制用于“mdat”的媒体的生成和复用。
在该系统中,音频和视频编码器可以分别取得原始音频和视频信号并将其编码为音频和视频比特流。3GPP复用器将复用音频和视频比特流并且生成用于HTTP服务器的3GPP文件。用户装置可以通过正常的GET请求或部分GET请求来访问所生成的文件。预测模块用于提供用于构建虚“moov”盒和控制编码器的媒体信息。本发明不限于仅使用编码器,并且在某些实施例中使用避免使用原始媒体阶段的智能代码转换器。
用于构建“moov”盒的媒体信息包括:
●全部样本的数目,指视频或音频帧的数目;
●每个样本的数据长度,指用于编码每个视频帧或一个音频帧的字节的数目;
●定时信息,例如帧率;以及
●媒体编码信息,例如编解码器类型、简档、级别、比特率、采样率。
图2描述产生3GPP复用器和视频/音频编码器需要的媒体信息的预测模块。预测模块包括两个子模块,一个用于音频,另一个用于视频。
用于音频子模块的输入可以是持续时间、音频采样率和音频编码参数,诸如比特率和编解码器类型之类。用于音频子模块的输出将包括全部音频样本的总数的估计、定时信息、媒体编码信息和音频帧的样本大小。对于大多数音频编码器,如果编码比特率和采样率被确定,则音频帧的样本大小也被确定并且所有音频帧具有相同的样本大小。例如,用GSM-AMR编码器以8000Hz采样率、12.2kbps比特率编码的音频帧的大小总是32字节。
用于视频模块的输入可以是内容类型、持续时间和视频编码参数,诸如编解码器类型、帧率、分辨率、关键帧间隔和比特率之类。视频子模块的输出可以包括全部视频样本的数目的估计、定时信息、媒体编码信息、和样本大小的样式。样本大小的样式包含针对一组样本预先确定的样本大小。图3中示出样本大小的样式的一个示例。在该示例中,针对所有样本预先确定相同的值。这里,该组大小为1。图4示出样本大小的样式的另一示例。在该示例中,第一样本的大小不同,而该组中其余样本具有相同样本大小。
样本大小样式可以从一般视频信息中确定,所述一般视频信息例如是视频的类型:新闻、体育或音乐TV,视频分辨率,帧率和关键帧间隔。其也可以通过在会话开始时分析视频的特征来动态确定。
要构建“moov”盒,所要计算的参数的值基于媒体信息,所述媒体信息例如是:文件的持续时间、音频轨道的持续时间、视频轨道的持续时间、每个样本的样本大小、文件中的组块的数目、每个组块中的样本数、以及文件中的每个组块的偏移,并且示出如何基于来自预测模块的信息计算出这些参数值。
文件的持续时间等于音频轨道的持续时间和视频轨道的持续时间中较大的一者。音频轨道的持续时间是从音频样本的总数和音频定时信息中计算出的。视频轨道的持续时间是从视频样本的总数和视频定时信息中计算出的。通常,三个持续时间是相同的。该持续时间也可以是在不知道内容的情况下独立于内容来确定的。
“moov”盒的视频轨道中的每个样本的样本大小是从样本大小的样式中导出的。样本大小的样式被从“moov”盒的视频轨道中的第一个样本大小到最后一个样本大小被周期性地映射到样本大小。当然,其它样式或非周期性的利用也是可以的,但是样式重复的优点在于编码设施能够使用样式中的信息来产生更高效的编码。
“moov”盒的音频轨道中的每个样本的样本大小与来自预测模型的音频帧的样本大小相同。
在确定样本的总数和每个样本的样本大小之后,可以如[1]中所规定地计算出文件中的组块的数目、每个组块中的样本的数目以及文件中每个组块的偏移。
图5示出“moov”盒中的值与来自预测模块的媒体信息如何相关联的示例。在该示例中,预测模块已确定了媒体信息。该示例中的视频样本的总数是100。视频帧率是10FPS。样本大小样式具有5个元素,并且从第一个开始到最后一个,它们是4000、1000、1300、1500、1700字节。对于音频媒体信息,音频样本的总数是500。每个音频帧的持续时间是20ms。以12.2kbps进行GSM-AMR编码的每个帧的样本大小是32字节。利用媒体信息,3GPP复用器可以导出文件的持续时间、视频轨道的持续时间以及音频轨道的持续时间都等于10秒。
视频样本大小样式的第一视频样本大小被映射到“moov”盒的视频轨道的第一样本大小。视频样本大小样式中的第2、3、4和5视频样本大小分别被映射到“moov”盒的视频轨道中的第2、3、4和5样本大小。然后,视频样本大小样式中的5个样本大小将以相同方式被映射到“moov”盒的视频轨道中的接下来5个样本大小。该处理将继续直到“moov”盒的视频轨道中的所有样本大小都被设置为止。
在虚“moov”盒被构建之后,其将被通过HTTP处理器(handler)被发送给用户装置(该发送很有可能是响应于来自客户端的一个或多个GET请求的)。然后,3GPP复用器将开始构建“mdat”盒。在“moov”盒已经被发送并且其不能被改变时,“mdat”盒中的媒体必须以“moov”盒所规定的方式布置。换而言之,每个视频样本必须具有与虚“moov”盒中对应的样本大小相同的样本大小。
图6示出可以针对一个视频样本进行的一种方式。当3GPP复用器从视频编码器接收到新的视频样本并且样本大小是N字节时,3GPP复用器将发现在虚“moov”盒中对应的样本大小使用M字节。如果M大于N,则(M-N)字节的填充字节将被附加到视频样本的末尾。填充字节可以是不会影响解码的东西。干净填充的一种替代方式是插入会被解码器忽略的无用的或错误的比特,但是这可能会引起互操作性问题而这是不期望的。
图7示出当分别使用图3和图4中的样本大小的样式时,来自视频编码器的一组视频样本如何被改变。
可见,图4中的样本大小的样式更加高效,这是因为在最后的视频样本中存在较少的填充字节。各种样式都可以在此用来实现更高的效率。例如,较大的样本大小可以用于帧内编码帧,而其余样本大小可以用于帧间编码帧。
可能发生这样的情况,视频样本大小大于“moov”盒中预先确定的对应样本大小。另一方面,有可能视频样本大小比预先确定的对应大小小得多。在该情况中,3GPP复用器不那么高效,这是因为存在更多填充字节。控制视频编码器来避免以上两种情况,对于高效是有益的。图8示出另一实施例,其中视频编码器被控制来产生样本大小接近但是不大于预先确定的样本大小的视频样本。在一个视频帧被编码之前,对应的预先确定的样本大小将被找出。在视频帧的编码完成之后,假设用于编码该帧的字节数是K并且预先确定的样本大小是X。如果K远小于X,例如K<X*10%,则该帧应当被重新编码以得到更多的比特。如果K大于X,则该帧应当被重新编码以得到更少的比特。
还存在可以用来通过更好地利用预先确定的样本大小来实现更好的视频质量的许多技术。
实施例之一将速率控制和场景改变检测相结合。场景改变检测可以检测视频中通常引起编码中的比特率突发的主要改变,以使得速率控制可以相应地改变编码策略。
另一种技术是在宏块(MB)级和帧级调节编码QP,如果要求更多比特或更少比特用于编码该帧的话。
另一实施例是在编码之前确定关心区域(Region of Interest,ROI),以使得更多的比特可以被分配用于编码ROI。ROI可以由像新闻、运动或音乐TV这样的内容类型决定。
另一实施例进行多传递比特率控制。多传递比特率控制可以形成滑动窗来分析一个或多个帧。用于窗口中的每帧的目标比特数可以被确定并且其可以根据下一传递中的预先确定的比特预算被适当地调节。
另一实施例是基于视频的纹理分析(texture analysis)来分配编码比特。具有更多纹理信息的区域可以在编码比特分配中具有更高的加权因子。注意,纹理分析可以用在确定ROI的语境中来以更多或更少比特编码具有复杂纹理的ROI。例如,在篮球比赛中,高纹理区域可能并不引人注意,因为观众往往关注球场、球员,更重要的是关注球。因此,篮球场的低纹理区域对于要得到增强的体验质量的再现显然更为重要。
另一实施例是进行甚至用于不支持B帧的编解码器的类似B帧的(双向预测)编码,这是因为样式的特征是已知的并且延迟可被添加(或仅仅被利用),使得可以展望媒体并且可以传播判决的效果并且可以补偿或设计图像的各个部分来提高质量。尽管该技术类似于B帧预测编码,但是所产生的比特流是在没有任何类似B帧的编码和解码器的情况下的有效比特流,并且甚至编解码器不需要支持它。如果B帧在该会话中被准许,则该技术可以与实际的B帧结合使用以便获得最好的编码效率。
其它实施例可以在知道后一帧将具有更少或更多的比特,并虑及将在随后的帧中被补偿的策略或者需要为后一帧尝试建立具体的有利情形的策略的情况下,以具体方式使用时间样式来编码具体的帧或其子集。
另一实施例可以针对具体帧使用目标样本大小并致力于在不重新编码整个帧的情况下实现该目标大小。这可以通过如下方式来实现:存储用于帧中的元素的数据的叠加,例如多个块类型或系数。在一个实施例中,一个帧被处理,但是并不立即针对每个块/宏块生成比特流。而是,在最终以最优/加权方式应用QP和游长编码以产生用于该帧的比特流之前,保持用于该帧的所有系数。可以采用各种策略来在第一传递上实现与目标速率尽可能接近,但如果这没有实现,则不是重新编码该帧和重新计算这些系数,而是使用所存储的系数并且修改QP来实现期望的速率。以这种方式,可以对图像的各个部分应用粗略级别控制或精细调整来以可以恰好在实现比特率时终止的方式实现目标样本大小。并且,可以利用比编码整帧所需要的处理明显更少的处理来测试多次尝试/结果,更少的处理虑及总体更少的失真。该技术也可以被扩展到多个帧上并考虑样式和关心区域。
另外,也可以理解,涉及样式的本发明广泛适用于媒体适配并且不仅仅适用于媒体容器格式要求样本大小或其它信息的先于媒体发送的情况。其适用于音频,而不仅仅是视频,并且也适用于其它媒体类型。在其它情形中,其还适用于在针对以具体样式为目标的媒体的帧中实现恒定比特率或比特,这虑及可预测的行为并也虑及多个信道来更高效地共享资源的优势。例如,要在媒体由于协议有关的原因而不需要使用样式的情形中应用该技术,基站可以指示每个信道要使用的具体样式,以使得不会有大量样本(例如,帧内编码帧)的重叠并且可以以与静态复用提供优势的相同方式来保证复用效率。
3GPP文件中的各个盒,例如“moov”盒,也可以被压缩来节省该在前信息的发送时间,该在前信息会延迟回放和降低用户体验。
另一实施例虑及用于文件容器的“moov”盒的更及时的发送。“moov”盒被分段以减少文件报头的初始开销,在文件持续时间长的情况中,文件报头的初始开销是显著的。如果不进行“moov”分段,则一个小时的视频序列将在渐进式下载的开始时产生至少若干秒到分钟的“moov”数据的下载时间,这导致回放之前的延迟。图13图示出“moov”盒片段格式的示例。分段的“moov”称为“smov”。每个“smov”片段可以在媒体数据中周期性地出现,或者在知道前一片段完成时的时刻出现。完整内容可以是作为“moov”的内容的继续。“smov”类型紧随在“smov”片段的大小字段之后。其后紧随具体“smov”片段的序列号(序列号),其单调递增。其后紧随下一“smov”开始地址或偏移,并且再后面紧随前一“smov”开始地址或偏移。所有片段也都可以以压缩形式存在并称为压缩分段的“moov”或“csmv”。
另外的实施例还根据本申请中所记载的技术,利用比特流产生根据另外的容器格式的输出。可以接收这些技术的优点的这些容器格式包括但不限于FLV、3GP、3GP2、MP4和MOV。
本发明的一个实施例提供一种方法,其用于估计量化参数以用于以目标比特数编码帧。该方法可以单独使用或者可以在本申请进一步详细描述的迭代编码方法中使用。一种这样的迭代编码可以是在编码的前一迭代之后再次编码帧以便具有不同的比特流大小,这可以通过用不同的量化参数进行编码来实现。调节QP的一种简单技术是以最小的大小(例如,1)增大或减小它,直到达到目标为止,但是,这有可能大大增加编码处理的计算成本。关键的挑战,也是本发明的重要益处,是在维持视频质量的同时减少迭代编码的计算成本。
本发明的一个实施例提出一种技术,其提供准确的QP值以便使迭代次数最小。比特率和QP之间的一般关系是,越小的QP提供越精细的量化级别,从而其给出更好的质量和更高的比特率。对于诸如H.264/AVC之类的某些视频编码器而言,一个事实是,比特率与QP之间的关系并不是线性的。理由是QP间接表示量化位阶,而量化步长大小是量化中使用的真值。
在H.264/AVC中,QP和QP步长大小之间的关系是Qstep=2(QP-4)/6,因此,比特率相对于QP并不是线性的,但是总是可以从Qstep中计算出QP。可以用线性模型而不是比特率和1/QP之间的关系来更准确地表征比特率与1/Qstep之间的关系。
比特率与量化步长大小之间的线性模型是R=(K*SAD)/Qstep+C,其中R是估计出的一帧编码比特数,K是速率失真参数并且对于不同类型的图像是不同的,并且C是用来编码报头信息的比特数。(K*SAD)/Qstep反映用来编码变换后的残差的比特数。
如果再次利用相同的图像类型来编码一帧,则K是常量。SAD是当前帧和参考帧之间的绝对差的和并且其可以被近似认为是常量。C也可以近似为常量,因为大多数编码模式(例如,宏块类型)在重新编码时保持不变。因此,可以认为速率是随着1/Qstep线性变化的。该线性模型可以进一步被简化为R=G*(1/Qstep)+C,其中G是预测梯度。可以使用两个数据点来确定线性模型。为了确定该线性模型,可以使用两个数据点,即编码比特数和Qstep,来计算线性参数G和C。
使用从视频剪辑获得的数据画出的图9A示出在H.264中通过使用Qstep的不同值编码一帧的比特数。这些点表示样本的值,并且走势线示出近似线性的关系。可见,大多数数据点与走势线具有很接近的匹配,例外的是利用在Qstep的范围的两端的Qstep的值。给出接近匹配的Qstep的范围可以称为预测安全范围,并且在该范围中的Qstep称为预测安全Qstep。如果Qstep在预测安全范围中,则该线性模型更准确。
图9B示出同一剪辑中的连续帧展示线性关系,并且对于连续的帧,走势线几乎平行。跨越I帧和P帧会看到同样的结果。这是因为连续帧的相似性在短的时间期间上常常很高。这示出线性关系的梯度对于连续的帧是类似的。这意味着过去的帧的梯度可以用在当前帧(和将来的帧)的线性模型中。
基于该线性关系,本发明的一个实施例可以提供能够针对给定比特预算适应性地预测用来以减少的迭代数编码帧的QP的速率控制算法。该速率控制算法可以是基于图8中所图示的体系架构的。在用于一帧的编码迭代结束之后,并且如果通过该编码迭代产生的字节数不在目标比特预算的范围内,则调节后的QP可以被计算出并且可以在同一帧的随后迭代中使用。
本发明的一个实施例遵循图10的流程图中的算法。在编码一帧之前,构建当前帧的线性模型。表示为G(0)和C(0)的线性模型参数可以从过去的一帧或多帧中获得。它们可以是与在前一帧中所使用的参数相同的那些参数,或者它们可以是基于某些过去的帧的滑动窗来计算出的。一旦线性模型被构建,就可以针对被表示为CurrBitBudget的当前目标比特预算来预测表示为Qstep(0)的初始QP步长大小。Qstep(0)可以用以下公式计算:Qstep(0)=G(0)/(CurrBitBudget-C(0))。从预测的初始Qstep(0)中计算出的初始QP可以用于编码当前帧的第一次迭代。该QP可以用以下公式计算出:QP=4+6*Log2(Qstep(1))。在编码的第一次迭代完成之后,需要通过某些准则来判断是否期望重新编码。一个示例准则是将编码比特数与根据某一阈值的帧预算比特相比较。如果判定要重新编码,则可以使用单点线性预测处理来预测下一QP。如果该帧已被编码两次或更多次,则可以使用双点线性预测处理来预测下一QP。如果没有可用于当前帧的过去的线性模型参数,例如,当前帧是序列的第一帧,则应当计算梯度G和常量C两者。可以利用分别与各自的预测安全Qstep相关联的两个不同的QP来编码该帧。之后,可以获得两个数据点并可以形成新的线性模型。
本发明的一个实施例遵循针对单点线性预测处理的图11A中所图示的算法。在通过使用初始Qstep(0)而拥有可用于当前帧的包括实际的编码比特数R(0)的单个数据点之后,该处理可以用来找到用于编码的下一迭代的QP。可以通过使用该数据点来更新当前帧的线性模型。在该处理中,预测梯度G可以保持不变并且仅C被更新,这是因为对于连续的帧,预测梯度是类似的。线性参数C可以计算为:C=R(0)-G*(1/Qstep(0))。基于更新后的线性模型,可以通过以下公式来为下一次迭代计算出表示为Qstep(1)的下一QP步长大小:Qstep(1)=G/(CurrBitBudget-C)。然后可以从Qstep(1)计算出随后的QP。
本发明的一个实施例遵循针对双点线性预测处理的图11B中所图示出的算法。如果帧被编码了两次或更多次,或者如果即使从前一帧可获得总共两个或更多可信任的数据点使得两个或更多数据点可用于当前帧,则该处理用于找到QP,并且可以形成更准确的线性预测模型。如果两个数据点(R(0),Qstep(0))和(R(1),Qstep(1))可用。则可以通过求解线性方程R(0)=G*(1/Qstep(0))+C和R(1)=G*(1/Qstep(1))+C来计算出预测梯度G和C。该线性模型可以用于下一QP的预测并且利用在随后的迭代中所获得的数据点被更新。当前帧中所获得的所有数据点都可以用来获得更准确的线性预测模型。如果当前帧的线性模型由来自当前帧的两个或更多数据点形成,则该模型可以用于下一帧的初始单点线性预测处理。
根据本发明一个实施例,该线性模型可以不仅用于针对给定目标比特预算来预测QP,也可以用于针对给定QP来预测编码比特。在完成当前迭代的编码之后,如果编码比特数小于预先确定的比特预算范围的阈值,则该帧将被利用更小的QP重新编码以获得更高的视频质量。在进行实际的重新编码之前,可以通过使用该线性模型来预测利用更小的QP进行编码将使用的比特数。如果预测的编码比特数大于预先确定的比特预算范围的最大值,则不必利用该QP再次重新编码该帧,因为其很有可能超过比特预算。则,将该QP排除在编码的下一迭代之外。如果当前QP减去1的预测编码比特数已经高于最大限度,则可以及早结束重新编码处理。
根据本发明的一个实施例,在从预测的Qstep中计算出QP之后,可以将该QP修剪至某一范围,该范围使得当前QP和最后的QP的绝对差小于一阈值。该阈值可用来限制任何预测误差的影响以及感知质量的差异。对于没有之前的编码QP的帧的初始QP,可以使用最后一帧的最后的QP。该阈值可以用许多视频剪辑的统计数据来确定。一个这样的阈值是10并且其它模型可以使用不同的阈值数或距离测定。最小化预测误差的另一种方式可以是仅使用预测安全Qstep来更新线性预测模型。
根据本发明一个实施例,可以利用来自同一帧的两个或更多数据点来定期地完全地更新该线性模型。对于许多连续的帧编码可以仅被执行一次,这意味着从上一次更新起,预测梯度不变。随着距离上一次更新的间隔变长,线性模型往往变得不那么准确。定期的更新可以刷新线性模型并给出更好的预测。定期更新间隔可以与关键帧间隔或主要场景改变帧相关,在这些帧中,视频通常会丢失其连续性。
根据本发明一个实施例,速率控制算法可以给Qstep预测的最大次数封顶。这用来避免线性模型仅具有预测比真实值要么更小要么更大的Qstep预测值的准确度这样的预测振动。如果预测次数超过最大值,则该算法可以用最小的QP步长或通过另一细颗粒的搜索方法来开始精细地调节QP。
速率控制算法也可以用在其中帧预算不是硬性限度并且允许某些波动的通用CBR速率控制中。通用CBR速率控制可以使用滑动窗来分析图像的群组来确定帧预算并且帧预算在编码期间可以改变。
本发明一个实施例使用其它非线性预测模型来预测下一Qstep。可以通过将诸如过去的帧编号、图像类型、Qstep、实际比特流大小等的某些输入数据馈送到神经网络、判决树、递归滤波器、加权滤波器或其它学习处理来形成该非线性预测模型。输入数据可以从当前或过去的帧的滑动窗中获得。也可以使用由代表性剪辑构成的训练集合来预训练该模型,并可以找到用于非线性模型的参数。这些模型可以在编码处理的开始时被更新一次,或者可以以固定的间隔被定期更新,或者针对每个新的数据集合动态地更新或如果某些测量指示需要更新则动态地更新。
本发明一个实施例提供一种用于在编码处理中再次利用运动估计信息的方法。该方法可以单独使用或者可以在以上在本说明书中详细描述的迭代编码方法中使用。该实施例的益处在于通过在第一次迭代之后有选择地跳过运动估计(ME)来提高迭代编码的性能。
迭代技术对帧编码一次并且如果质量或比特率不满足要求则使用来自前一迭代的某些信息来进行编码的另一传递。一般,会变化的该信息是跨越多次迭代的帧/宏块的QP。
图12示出跳过运动估计迭代编码的流程图。在正常的迭代编码中,包括运动估计、运动补偿、帧内编码、DCT、量化、可变长度编码、逆量化和逆DCT的编码处理将被执行多次。该帧之前的编码中所收集的运动矢量(MV)可以在当前迭代中被再次利用,因此计算密集的运动估计(ME)可被跳过来节省CPU周期。
是否再次利用MV的判决可以是基于质量差异或某些其他因素来进行的。质量差异测量可以用该帧的前一次迭代和当前迭代之间的QP差来确定。如果前一传递和当前传递之间的QP差大于某一限定阈值,则意味着MV在该跳中很有可能改变。一个这样的阈值是2。ME处理还可以被执行来保持视频质量。如果QP差小于阈值,则ME处理可以被跳过并且运动矢量可以被再次利用。
根据以上描述,本发明一个实施例包括一种用于发送编码的媒体帧的方法。在一个实施例中,编码的媒体帧可以由网络基础设施装置发送。该方法可以包括:确定包括一媒体帧大小的多个媒体帧大小,发送包括这多个媒体帧大小的元素,和/或接收输入媒体帧。该方法还可以包括:根据该媒体帧大小处理输入媒体帧来提供编码的媒体帧,和/或发送编码的媒体帧。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
本发明另一实施例包括一种用于发送编码的媒体帧的设备。在一个实施例中,该设备可以包括网络基础设施装置。该设备可以包括用于确定包括一媒体帧大小的多个媒体帧大小的部件,用于发送包括这多个媒体帧大小的元素的部件,和/或用于接收输入媒体帧的部件。该设备还可以包括用于根据该媒体帧大小处理输入媒体帧来提供编码的媒体帧的部件和/或用于发送编码的媒体帧的部件。在一个实施例中,该设备可以包括控制器、媒体处理模块或媒体适配模块。
本发明的另一实施例包括一种产生编码媒体的方法。在一个实施例中,该编码媒体可以由网络基础设施装置产生。该方法可以包括确定包括多个帧大小的媒体编码样式和/或根据这多个帧大小来产生多个编码媒体样本。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
本发明另一实施例包括一种用于产生编码媒体的设备。在一个实施例中,该设备可以包括网络基础设施装置。该设备可以包括用于确定包括多个帧大小的媒体编码样式的部件和/或用于根据这多个帧大小来产生多个编码媒体样本的部件。在一个实施例中,该设备可以包括控制器、媒体处理模块或媒体适配模块。
本发明另一实施例包括一种估计量化步长参数以用于在视频编码处理中使用的方法。在一个实施例中,量化步长参数可以由网络基础设施装置来估计。该方法可以包括:提供梯度和常量,其中该梯度和常量将第一编码视频帧的第一数据大小与第一量化步长的倒数相关;和/或提供目标比特流大小。该方法还可以包括至少使用目标比特流大小、梯度和常量来估计第二量化步长,和/或使用第二量化步长产生第二编码视频帧。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
本发明另一实施例包括一种用于估计量化步长参数以用于在视频编码处理中使用的设备。在一个实施例中,该设备可以包括网络基础设施装置。该设备可以包括:用于提供梯度和常量的部件,其中该梯度和常量将第一编码视频帧的第一数据大小与第一量化步长的倒数相关;和/或用于提供目标比特流大小的部件。该设备还可以包括用于至少使用目标比特流大小、梯度和常量来估计第二量化步长的部件,和/或用于使用第二量化步长产生第二编码视频帧的部件。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
本发明另一实施例包括一种再次利用运动估计信息来迭代编码视频帧中的一个或多个宏块的方法。在一个实施例中,这一个或多个宏块可以由网络基础设置装置来编码。该方法可以包括使用第一质量参数来编码一个或多个宏块,产生一个或多个编码宏块、用于这一个或多个宏块的一个或多个运动矢量、以及与至少一个或多个编码宏块相关联的比特流大小。该方法还可以包括部分地基于目标比特流大小来确定第二编码要被执行,提供第二质量参数,和/或编码这一个或多个运动矢量,产生一个或多个第二编码宏块。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
本发明另一实施例包括一种再次利用运动估计信息来迭代编码视频帧中的一个或多个宏块的设备。在一个实施例中,该设备可以包括网络基础设施装置。该设备可以包括用于使用第一质量参数来编码一个或多个宏块,产生一个或多个编码宏块、用于这一个或多个宏块的一个或多个运动矢量、以及与至少一个或多个编码宏块相关联的比特流大小的部件。该设备也可以包括用于部分地基于目标比特流大小来确定第二编码要被执行的部件,用于提供第二质量参数的部件,和/或用于编码这一个或多个运动矢量,产生一个或多个第二编码宏块的部件。在一个实施例中,这可以在控制器、媒体处理模块或媒体适配模块中进行。
根据本发明一个实施例,提供一种用于适配一个或多个网络中的媒体内容的设备。该设备包括控制器模块、一个或多个网络接口模块以及耦合到该控制器模块的一个或多个协议接口模块。该设备还包括耦合到该控制器模块的脚本翻译模块、耦合到该控制器模块的一个或多个媒体适配模块和耦合到该控制器模块的管理接口模块。
根据本发明一个实施例,提供一种用于提供在一系列网络和传输协议的范围上的从多种格式和质量到多种其它格式和质量的多媒体内容适配的设备。该设备允许以资源高效方式从多种格式到多种其他格式的多媒体内容适配。该设备通过多媒体内容的适配允许多媒体内容以方便的格式存储并从任意呈现装置访问。该设备也是可按照需求升级的。
本发明的实施例是这样的系统或设备,其包括一个或多个处理单元(例如数字信号处理器(DSP)、FPGA/ASIC或通用处理器)、一个或多个存储器、一个或多个操作系统(以允许访问不同硬件资源)、具有总线控制单元的总线以及资源控制单元。
另外,还应当理解,这里所描述的示例和实施例仅用于说明目的,鉴于它们进行的各种修改或改变将暗示给本领域技术人员并且被包括在本申请的精神和范围以及所附权利要求的范围内。

Claims (25)

1.一种发送编码媒体帧的方法,该方法包括:
确定包括一媒体帧大小的多个媒体帧大小;
发送包括所述多个媒体帧大小的元素;
之后,接收输入媒体帧;
根据该媒体帧大小处理该输入媒体帧来提供编码媒体帧;以及
发送该编码媒体帧。
2.根据权利要求1所述的方法,其中该输入媒体帧包括视频帧。
3.根据权利要求1所述的方法,其中处理该输入媒体帧包括根据该媒体帧大小编码该输入媒体帧并使用填充媒体来产生该编码媒体帧。
4.根据权利要求1所述的方法,其中处理该输入媒体帧包括编码该输入媒体帧来产生第二编码媒体帧,测试第二编码媒体帧的大小是否在阈值内,并且如果第二编码媒体帧的大小不在该阈值内,则修改编码处理来重新编码该输入媒体帧以产生该编码媒体帧。
5.根据权利要求1所述的方法,其中处理该输入媒体帧包括执行编码处理的子部分、存储来自编码处理的该子部分的用于两个或更多个宏块的一个或多个系数、对所存储的系数应用量化和游长编码来产生该编码媒体帧的子部分。
6.根据权利要求5所述的方法,其中处理该输入媒体帧包括对所述一个或多个系数应用不同的量化和游长编码来产生该编码媒体帧,其中该编码媒体帧具有在该媒体帧大小的阈值内的大小。
7.根据权利要求1所述的方法,其中该元素和该编码媒体帧形成遵循一容器格式的文件的一部分,该容器格式是从由FLV、3GP、3GP2、MP4和MOV组成的群组中选出的。
8.根据权利要求1所述的方法,其中‘moov’盒包括该元素并且‘mdat’盒包括该编码媒体帧。
9.根据权利要求1所述的方法,其中发送该元素是响应于第一HTTP部分内容请求的,并且发送该编码媒体帧是响应于第二HTTP请求的。
10.一种产生编码媒体的方法,该方法包括:
确定包括多个帧大小的媒体编码样式;以及
根据所述多个帧大小产生多个编码媒体样本。
11.根据权利要求10所述的方法,其中确定该媒体编码样式还包括使用总的帧数、帧率、编解码器类型、简档、级别、比特率或采样率中的一个或多个来确定帧大小样式。
12.根据权利要求10所述的方法,其中该媒体编码样式是通过对比特流的一部分的动态分析来创建的。
13.根据权利要求10所述的方法,其中该媒体编码样式包括周期性地提供更大帧大小的样式,其中该更大帧大小与关键帧对准。
14.一种估计量化步长参数以用于在视频编码处理中使用的方法,该方法包括:
提供梯度和常量,其中该梯度和该常量使第一编码视频帧的第一数据大小与第一量化步长的倒数相关;
提供目标比特流大小;
至少使用该目标比特流大小、该梯度和该常量来估计第二量化步长;以及
使用该第二量化步长来产生第二编码视频帧。
15.根据权利要求14的方法,其中第一编码视频帧和该第二编码视频帧与同一帧相关联。
16.根据权利要求14的方法,其中第一编码视频帧与第一帧相关联,并且第二编码视频帧与第二帧相关联,第二帧与第一帧不同。
17.根据权利要求14的方法,其中该梯度是从用于一帧的第一数据点和用于该帧的第二数据点中确定的。
18.根据权利要求14的方法,其中该梯度是从用于第一帧的第一数据点和用于第二帧的第二数据点中确定的。
19.根据权利要求14的方法,还包括:
使用第二编码视频帧的第二比特流大小来确定第二梯度和第二常量。
20.根据权利要求19所述的方法,还包括:
至少使用该目标比特流大小、第二梯度和第二常量来估计第三量化步长;以及
使用第三量化步长来产生第三编码视频帧。
21.根据权利要求14所述的方法,其中估计使用公式R=G*(1/Qstep)+C,其中R是该目标比特流大小,G是该梯度并且C是该常量。
22.一种再次利用运动估计信息来迭代编码视频帧中的一个或多个宏块的方法,该方法包括:
使用第一质量参数来编码所述一个或多个宏块,产生一个或多个编码宏块、用于所述一个或多个宏块的一个或多个运动矢量以及至少与所述一个或多个编码宏块相关联的比特流大小;
部分地基于目标比特流大小来确定要执行第二编码;
提供第二质量参数;以及
使用第二质量参数和所述一个或多个运动矢量来编码所述一个或多个宏块,产生一个或多个第二编码宏块。
23.根据权利要求22所述的方法,其中确定要执行第二编码利用期望的比特流大小、该比特流大小和阈值。
24.根据权利要求22所述的方法,其中使用第二质量参数和所述一个或多个运动矢量来编码所述一个或多个块是在没有运动估计处理的情况下执行的。
25.根据权利要求22所述的方法,其中该第二质量参数离第一质量参数小于某一距离。
CN200980135357.8A 2008-09-09 2009-09-04 用于发送视频的方法和设备 Expired - Fee Related CN102172020B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9558708P 2008-09-09 2008-09-09
US61/095,587 2008-09-09
PCT/US2009/056005 WO2010030569A2 (en) 2008-09-09 2009-09-04 Method and apparatus for transmitting video

Publications (2)

Publication Number Publication Date
CN102172020A true CN102172020A (zh) 2011-08-31
CN102172020B CN102172020B (zh) 2014-09-03

Family

ID=41799266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980135357.8A Expired - Fee Related CN102172020B (zh) 2008-09-09 2009-09-04 用于发送视频的方法和设备

Country Status (4)

Country Link
US (2) US8477844B2 (zh)
EP (1) EP2321969A4 (zh)
CN (1) CN102172020B (zh)
WO (1) WO2010030569A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533347A (zh) * 2012-06-29 2014-01-22 英特尔公司 用于视频的多次量化和位压缩控制
CN109117945A (zh) * 2017-06-22 2019-01-01 上海寒武纪信息科技有限公司 处理器及其处理方法、芯片、芯片封装结构及电子装置
CN112312134A (zh) * 2019-08-01 2021-02-02 杭州海康威视数字技术股份有限公司 编码方法、装置、电子设备及可读存储介质

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102450014B (zh) 2009-03-31 2017-07-14 茨特里克斯系统公司 用于质量感知视频优化的方法和视频优化器
GB2469528B (en) * 2009-04-18 2011-10-05 Saffron Digital Ltd Transcoding video data
US8848799B2 (en) * 2009-09-02 2014-09-30 Sony Computer Entertainment Inc. Utilizing thresholds and early termination to achieve fast motion estimation in a video encoder
US9749713B2 (en) * 2009-10-15 2017-08-29 Citrix Systems, Inc. Budget encoding
CN102860021B (zh) * 2010-04-20 2017-06-20 三星电子株式会社 用于传送和接收媒体数据的接口装置和方法
GB2481576B (en) * 2010-06-22 2013-04-03 Canon Kk Encoding of a video frame for transmission to a plurality of clients
US8917774B2 (en) * 2010-06-30 2014-12-23 Warner Bros. Entertainment Inc. Method and apparatus for generating encoded content using dynamically optimized conversion
US9591374B2 (en) 2010-06-30 2017-03-07 Warner Bros. Entertainment Inc. Method and apparatus for generating encoded content using dynamically optimized conversion for 3D movies
US10326978B2 (en) 2010-06-30 2019-06-18 Warner Bros. Entertainment Inc. Method and apparatus for generating virtual or augmented reality presentations with 3D audio positioning
US8755432B2 (en) 2010-06-30 2014-06-17 Warner Bros. Entertainment Inc. Method and apparatus for generating 3D audio positioning using dynamically optimized audio 3D space perception cues
JP2012054788A (ja) * 2010-09-01 2012-03-15 Canon Inc データファイル転送装置、その制御方法、プログラム及び記憶媒体
US8644383B2 (en) * 2011-03-10 2014-02-04 Microsoft Corporation Mean absolute difference prediction for video encoding rate control
US9665646B1 (en) * 2011-04-13 2017-05-30 Flash Networks, Ltd Method and system for providing bit rate adaptaion to video files having metadata
WO2012170910A1 (en) 2011-06-10 2012-12-13 Bytemobile, Inc. Macroblock-level adaptive quantization in quality-aware video optimization
US8872895B2 (en) * 2011-09-30 2014-10-28 Deutsche Telekom Ag Real-time video coding using graphics rendering contexts
KR101854469B1 (ko) * 2011-11-30 2018-05-04 삼성전자주식회사 오디오 컨텐츠의 비트레이트 판단장치 및 방법
US8978056B2 (en) 2011-12-08 2015-03-10 Nokia Siemens Networks Oy Video loading control
US9197888B2 (en) 2012-03-13 2015-11-24 Dolby Laboratories Licensing Corporation Overlapped rate control for video splicing applications
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
CN104380275B (zh) * 2012-04-23 2017-10-13 阿弗梅德网络公司 用于http伪流的基于积分控制器的定步
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9794375B2 (en) * 2013-03-14 2017-10-17 Openwave Mobility, Inc. Method, apparatus, and non-transitory computer medium for obtaining a required frame size for a compressed data frame
GB2531014B (en) 2014-10-07 2020-12-09 Advanced Risc Mach Ltd Data processing systems
GB2531015B (en) * 2014-10-07 2021-06-30 Advanced Risc Mach Ltd Data processing systems
US9479694B2 (en) * 2014-10-28 2016-10-25 Google Inc. Systems and methods for autonomously generating photo summaries
US11375249B2 (en) * 2016-08-03 2022-06-28 Dejero Labs Inc. System and method for controlling data stream modifications
JP7118966B2 (ja) * 2016-12-13 2022-08-16 ロヴィ ガイズ, インコーポレイテッド メディアアセットの着目オブジェクトの移動の経路を予測し、移動の経路におけるオーバーレイの設置を回避することによって、オーバーレイによるメディアアセットの妨害を最小化するためのシステムおよび方法
WO2018132964A1 (zh) 2017-01-18 2018-07-26 深圳市大疆创新科技有限公司 传输编码数据的方法、装置、计算机系统和移动设备
KR102403066B1 (ko) 2017-08-22 2022-05-27 삼성전자주식회사 제로 비트 패딩을 이용한 채널 부호화/복호화 방법 및 장치
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11354164B1 (en) 2018-04-20 2022-06-07 Automation Anywhere, Inc. Robotic process automation system with quality of service based automation
US10908950B1 (en) * 2018-04-20 2021-02-02 Automation Anywhere, Inc. Robotic process automation system with queue orchestration and task prioritization
CN110062262B (zh) * 2019-04-12 2022-05-03 北京字节跳动网络技术有限公司 视频数据的转码控制方法、装置、电子设备和存储介质
US11825090B1 (en) * 2022-07-12 2023-11-21 Qualcomm Incorporated Bit-rate estimation for video coding with machine learning enhancement
CN116233445B (zh) * 2023-05-10 2023-07-14 腾讯科技(深圳)有限公司 视频的编解码处理方法、装置、计算机设备和存储介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999525A (en) * 1996-11-18 1999-12-07 Mci Communications Corporation Method for video telephony over a hybrid network
US7145898B1 (en) * 1996-11-18 2006-12-05 Mci Communications Corporation System, method and article of manufacture for selecting a gateway of a hybrid communication system architecture
US20050111363A1 (en) * 1999-03-04 2005-05-26 Snelgrove William M. Operating system for telecommunications
CN101035277A (zh) * 2000-03-13 2007-09-12 索尼公司 产生压缩的代码转换提示元数据的方法和设备
FI20011871A (fi) * 2001-09-24 2003-03-25 Nokia Corp Multimediadatan prosessointi
US6829579B2 (en) * 2002-01-08 2004-12-07 Dilithium Networks, Inc. Transcoding method and system between CELP-based speech codes
US20040057521A1 (en) * 2002-07-17 2004-03-25 Macchina Pty Ltd. Method and apparatus for transcoding between hybrid video CODEC bitstreams
US7363218B2 (en) * 2002-10-25 2008-04-22 Dilithium Networks Pty. Ltd. Method and apparatus for fast CELP parameter mapping
US7133521B2 (en) * 2002-10-25 2006-11-07 Dilithium Networks Pty Ltd. Method and apparatus for DTMF detection and voice mixing in the CELP parameter domain
CN1735927B (zh) * 2003-01-09 2011-08-31 爱移通全球有限公司 用于高质量语音编码转换的方法和装置
US20040252761A1 (en) * 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
US7469209B2 (en) * 2003-08-14 2008-12-23 Dilithium Networks Pty Ltd. Method and apparatus for frame classification and rate determination in voice transcoders for telecommunications
US7433815B2 (en) * 2003-09-10 2008-10-07 Dilithium Networks Pty Ltd. Method and apparatus for voice transcoding between variable rate coders
US20070064937A1 (en) * 2003-11-28 2007-03-22 Van Leest Adriaan J Method and apparatus for encoding or decoding a bitstream
US9715898B2 (en) * 2003-12-16 2017-07-25 Core Wireless Licensing S.A.R.L. Method and device for compressed-domain video editing
US20050258983A1 (en) * 2004-05-11 2005-11-24 Dilithium Holdings Pty Ltd. (An Australian Corporation) Method and apparatus for voice trans-rating in multi-rate voice coders for telecommunications
CN101278278A (zh) * 2005-07-28 2008-10-01 达丽星网络有限公司 在基于信道的媒体远程通信协议的通信期间提供交互式媒体的方法和装置
US20070291106A1 (en) * 2005-07-28 2007-12-20 Dilithium Networks, Inc. Method and apparatus for providing interactive media during communication in channel-based media telecommunication protocols
US8145774B2 (en) * 2005-11-08 2012-03-27 Microsoft Corporation Progressively accessing data blocks related to pages
WO2007053957A1 (en) * 2005-11-14 2007-05-18 Cyberdiffusion Inc. Transcoder for live streams and on demand media
US8295343B2 (en) * 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
KR100724899B1 (ko) * 2005-11-22 2007-06-04 삼성전자주식회사 호환성있는(compatible) 프로그레시브 다운로드방법 및 그 시스템
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
US20070177606A1 (en) * 2006-01-13 2007-08-02 Dilithium Networks Pty Ltd. Multimedia streaming and gaming architecture and services
JP2007336005A (ja) * 2006-06-12 2007-12-27 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
US9247259B2 (en) * 2006-10-10 2016-01-26 Flash Networks Ltd. Control of video compression based on file size constraint
US20080152006A1 (en) * 2006-12-22 2008-06-26 Qualcomm Incorporated Reference frame placement in the enhancement layer
WO2008098249A1 (en) * 2007-02-09 2008-08-14 Dilithium Networks Pty Ltd. Method and apparatus for the adaptation of multimedia content in telecommunications networks
US8582656B2 (en) * 2007-04-13 2013-11-12 Apple Inc. Method and system for video encoding and decoding
WO2009114111A2 (en) * 2008-03-12 2009-09-17 Packetvideo Corp. System and method for reformatting digital broadcast multimedia for a mobile device
EP2150059A1 (en) * 2008-07-31 2010-02-03 Vodtec BVBA A method and associated device for generating video
US20110246603A1 (en) * 2008-09-05 2011-10-06 The Chinese University Of Hong Kong Methods and devices for live streaming using pre-indexed file formats

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103533347A (zh) * 2012-06-29 2014-01-22 英特尔公司 用于视频的多次量化和位压缩控制
US9729889B2 (en) 2012-06-29 2017-08-08 Intel Corporation Multi-pass quantization and bit packing control for video
CN109117945A (zh) * 2017-06-22 2019-01-01 上海寒武纪信息科技有限公司 处理器及其处理方法、芯片、芯片封装结构及电子装置
CN112312134A (zh) * 2019-08-01 2021-02-02 杭州海康威视数字技术股份有限公司 编码方法、装置、电子设备及可读存储介质
CN112312134B (zh) * 2019-08-01 2023-03-24 杭州海康威视数字技术股份有限公司 编码方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
EP2321969A2 (en) 2011-05-18
EP2321969A4 (en) 2012-05-09
WO2010030569A3 (en) 2010-11-11
US20130259132A1 (en) 2013-10-03
WO2010030569A2 (en) 2010-03-18
CN102172020B (zh) 2014-09-03
US20100061448A1 (en) 2010-03-11
US8477844B2 (en) 2013-07-02

Similar Documents

Publication Publication Date Title
CN102172020B (zh) 用于发送视频的方法和设备
CN106537923B (zh) 自适应视频流的技术
CN101743753B (zh) 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
US9313529B2 (en) Video streaming
US6925120B2 (en) Transcoder for scalable multi-layer constant quality video bitstreams
US9571827B2 (en) Techniques for adaptive video streaming
US20110292995A1 (en) Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program
US20080273533A1 (en) Adaptive Packet Transmission with Explicit Deadline Adjustment
KR20040011100A (ko) 개선된 비트율 제어 방법과 그 장치
WO2017214510A1 (en) Transcoding using time stamps
KR101783071B1 (ko) 비디오 신호의 인코딩 또는 압축 중에 비디오 신호의 품질을 평가하는 방법 및 장치
CN101682738A (zh) 视频流送系统、代码转换装置和视频流送方法
Zhang et al. Constant-quality constrained-rate allocation for FGS video coded bitstreams
Wu et al. Adaptive initial quantization parameter determination for H. 264/AVC video transcoding
Slowack et al. Distributed video coding with feedback channel constraints
KR101285654B1 (ko) 메타 데이터와 미디어 데이터가 분리되어 있는 파일 형식의 멀티미디어 컨텐츠를 프로그래시브 다운로드하기 위한 실시간 트랜스코딩 장치
CN101984667B (zh) 码率控制方法及码率控制器
KR100601846B1 (ko) 동영상 압축 부호화기의 왜곡 최적화 장치 및 방법
CN105578185A (zh) 一种网络视频流的无参考图像质量在线估计方法
Skupin et al. Packet level video quality evaluation of extensive H. 264/AVC and SVC transmission simulation
Zhang et al. Rate control optimization for live streaming using fixed-time playback buffer
Stapenhurst et al. Adaptive HRD parameter selection for fixed delay live wireless video streaming
KR100642311B1 (ko) 실시간 영상을 율제한 움직임 추정하기 위한 방법
Ortega et al. Mechanisms for adapting compressed multimedia to varying bandwidth conditions
Koumaras Objective and subjective assessment methods of video quality in multimedia broadcasting

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140903

Termination date: 20150904

EXPY Termination of patent right or utility model