[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN105849800B - 位速率估值确定方法、位速率估算器、多路复用设备、位流提供方法和编码系统 - Google Patents

位速率估值确定方法、位速率估算器、多路复用设备、位流提供方法和编码系统 Download PDF

Info

Publication number
CN105849800B
CN105849800B CN201480066065.4A CN201480066065A CN105849800B CN 105849800 B CN105849800 B CN 105849800B CN 201480066065 A CN201480066065 A CN 201480066065A CN 105849800 B CN105849800 B CN 105849800B
Authority
CN
China
Prior art keywords
frames
bit rate
frame
sequence
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480066065.4A
Other languages
English (en)
Other versions
CN105849800A (zh
Inventor
H·霍伊里奇
A·格罗舍尔
J·波普
M·罗塞尔
M·施米特
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.)
Dolby International AB
Original Assignee
Dolby International AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International AB filed Critical Dolby International AB
Publication of CN105849800A publication Critical patent/CN105849800A/zh
Application granted granted Critical
Publication of CN105849800B publication Critical patent/CN105849800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6547Transmission by server directed to the client comprising parameters, e.g. for client setup
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • G11B2020/00036AC-3, i.e. ATSC digital audio compression standard
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10703Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control processing rate of the buffer, e.g. by accelerating the data output

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本文件涉及与编码位流有关的位速率的确定,并且描述用于确定包含帧序列的位流的位速率的估值的方法,所述帧序列包含不同数量的位且与音频和/或视频信号的摘录对应。帧序列中的至少两个帧包含指示相应帧的处理延迟的参数。该方法包括:对来自位流的帧的子序列确定总位数;基于包含于子序列内的帧的数量和子序列的至少两个帧的参数确定帧的校正数量;以及基于总位数、帧的校正数量及位流的帧速率,确定位速率的位速率下限和位速率上限。

Description

位速率估值确定方法、位速率估算器、多路复用设备、位流提 供方法和编码系统
(对相关申请的交叉引用)
本申请要求在2013年12月2日提交的欧洲专利申请No. 13195368.9和在2014年4月30日提交的美国临时专利申请No. 61/986351作为优先权,在这里通过引用将其并入本文。
技术领域
本文件涉及与编码的位流有关的位速率的确定。
背景技术
为了有利于在恒定位速率信道上传送编码的位流,发送设备一般需要关于当编码所述位流时采用的位速率的信息。并且,在被配置为将多个编码位流多路复用成联合位流的多路复用设备中,需要关于编码位流的位速率的信息。这种多路复用设备的例子是MPEG-2传输流多路复用器。并且,解码设备可能需要关于当编码所述位流时采用的位速率的信息。
可例如从编码位流的接收帧的实际大小估算采用的位速率的(大概的)粗略的估值。但是,这种估值的质量依赖于位流的类型。位流的可能的类型例如是恒定位速率(CBR)、可变位速率(VBR)或平均位速率(ABR)位流。CBR位流一般不需要明确的位速率信令,原因是位流的帧通常有基本上恒定的大小。另一方面,在VBR位流的情况下,瞬时(momentary)位速率可能明显变化,使得基于帧大小的位速率的估值的质量一般相对低。
ABR位流表现位流“平均化”实现的位速率。为了能够处理位速率的瞬时变化,ABR位流的多路复用设备和/或解码设备一般包含预定大小(例如,预定数量的帧和/或固定数目的字节)的缓冲器。这种位流被称为遵循“缓冲器模型”。本文件解决以有效和精确的方式确定这种ABR位流的位速率的技术问题。在本文中,可能希望提供用于关于位速率的信令信息的有效方案,尤其为了增加位速率估值的精度和/或为了降低编码位速率信息所需的位数。
描述的方法也可被应用于其它类型的位流。作为例子,描述的方法可被应用于VBR位流,以便确定目标的指示符或VBR位流的平均位速率。
发明内容
根据一个方面,描述用于确定位流的位速率br的估值brest的方法。位流包含帧序列。该帧序列中的多个帧与音频和/或视频信号的摘录 (excerpt)对应。特别地,该帧序列中的多个帧可与音频和/或视频信号的摘录对应,其中,摘录(例如,所有摘录)具有恒定时间长度。另一方面,该帧序列中的多个帧可包含不同数量的位。换句话说,位流的瞬时位速率可改变。同时,位流可表现平均上是恒定的但遵循缓冲器模型的位速率。具有这种位速率的位流可被称为平均位速率 (ABR)位流。位流可包含AC-4位流。
该帧序列中的至少两个帧可包含wait_frames参数。帧的 wait_frames参数可指示相应帧的处理延迟。特别地,帧的wait_frames 参数可指示在处理之前相应帧被延迟的帧数。因而,wait_frames参数可向处理位流的多路复用设备和/或解码设备提供缓冲指令。wait_frames参数是一种信令化缓冲模型的状态的方式,其它方式例如是使用FIFO定时的buffer_fullness值。
该方法包括对来自位流的帧的子序列确定总位数或总大小STot。特别地,可确定来自该子序列的N个帧的总位数STot。可基于包含于位流的一些帧内的信息,从位流选择该子序列。特别地,子序列可基于包含于帧序列中的至少两个帧内的位速率代码参数被选择。
如上所述,帧的位数(也称为大小)可改变。因而,总位数STot可比位/帧的平均数的N倍高或低(根据子序列是否包含具有相对较大大小或相对较小大小的帧)。关于相对于帧的平均大小的子序列的帧的大小的信息可得自缓冲信息,即,得自wait_frames参数。该方法因此包括基于包含于子序列内的帧的数量(尤其基于已被用于确定总位数STot的帧的数量N)并且基于子序列的至少两个帧的wait_frames 参数确定帧的校正数量N′。因而,具有不同大小的帧的效果可至少部分地被补偿。
此外,该方法包括基于总位数STot、基于帧的校正数量N′以及基于位流的帧速率fframe,确定位速率br的下限brmin和上限brmax。位流的帧速率fframe可以是恒定的(至少对分析的子序列)。下限brmin和上限brmax提供位速率br的估值brest,原因是可以确认位速率位于间隔[brmin,brmax]内。
通过考虑wait_frames参数,即,通过考虑缓冲信息,可以在不使用用于信令位速率信息的位流的另外开销的情况下提高估值brest的精度。可以看出,在AC-4位流的情况下,当考虑wait_frames参数时,估值brest的精度可提高1/6倍。一般地,精度的可能提高依赖于位流的帧的平均帧大小和/或缓冲器的最大大小。
帧的校正数量N′可基于来自子序列的第一帧与第二帧的 wait_frames参数之间的差值被确定。特别地,第一帧可与子序列开始的帧对应,并且/或者,第二帧可与子序列结束的帧对应。因而,为了增加位速率估值brest的精度,传送子序列期间的缓冲器的“演变”(evolution)可被确定并且可被考虑。
一般地,缓冲信息,即,wait_frames参数具有与帧的数量对应的预定分辨率。因此,校正数量N′可一般仅被校正到一个帧的精度。因此,下限brmin可基于校正数量N′加1被确定,并且/或者上限brmax可基于校正数量N′减1被确定。
帧的子序列可包含N+1个帧n,n=0,…,N。子序列开始的帧 n=0可包含被称为wait_frames(0)的wait_frames参数,子序列结束的帧n=N可包含被称为wait_frames(N)的wait_frames参数。可对子序列的N个帧确定总位数STot(例如,当确定STot时,可不考虑子序列的第一帧或最后一帧)。作为例子,帧的wait_frames参数可指示相对于相应帧的结束的处理延迟。在这种情况下,总位数STot可被确定为
Figure BDA0001008199560000041
其中,Sn是子序列的帧n的位数(或大小)。
然后可通过用wait_frames(0)与wait_frames(N)之间的差值偏移N 来确定帧的校正数量N′。特别地,帧的校正数量N′可被确定为N′= N+wait_frames(0)-wait_frames(N)。
总之,下限可由
Figure BDA0001008199560000042
给出,并且/或者,上限可由
Figure BDA0001008199560000043
给出。
帧序列中的至少一些帧可包含位速率代码参数。位速率代码参数的值(例如,位速率代码参数的特定位组合)可与开始代码和/或停止代码对应。可基于开始代码和/或停止代码从帧序列确定用于确定(例如,选择)上限和下限的位流的子序列。特别地,子序列可被确定,使得子序列开始的帧包含与开始代码对应的位速率代码参数,使得子序列结束的帧包含与停止代码对应的位速率代码参数,并且使得在子序列中没有其它帧包含与开始代码或停止代码对应的位速率代码参数。
因此,位速率代码参数可提供用于信令化要估算新的位速率br 的事实的有效手段。作为例子,开始代码和/或停止代码可被编码设备使用,以向多路复用设备和/或解码设备通知位流的位速率(例如,ABR 位速率)已改变。开始代码可等于停止代码,由此进一步减少信令化要估算新的位速率的事实所需的开销。
鉴于wait_frames参数用于确定位速率的(粗略)估值的事实,只有包含wait_frames参数的帧可包含位速率代码参数。作为结果,由位速率代码参数导致的开销可进一步减少。
因此,该方法可包括用于基于包含于位流内的wait_frames参数确定位速率br(尤其是上下限brmin,brmax)的(大概)粗略估值brest的步骤。作为替代方案,或者,另外,该方法可包括提供位速率的这种初始(例如,粗略)估值的步骤和通过使用包含于位流内的另外的位速率信息来提高初始估值的精度的另一步骤。特别地,该方法可包括通过使用包含于位流的多个帧之一的位速率代码参数的值来提高初始估值的精度的步骤。因而,描述了针对提高位速率的初始估值的精度的方法。对于这种方法,上述的方法步骤可由提供位速率br的初始估值brest(例如,提供位流的位速率br的上下限brmin,brmax)的总体步骤说明。
位流的位速率br的估值brest可用包含尾数(mantissa)fbrCorr和指数k的浮点表示法来表示。指数k可基于位速率br的下限brmin和/或上限brmax被确定。尾数fbrCorr可基于子序列的一个或更多个帧的位速率代码参数被确定。特别地,浮点表示法可以是二进制浮点表示法,使得brest=fbrCorr×2k。在这种情况下,尾数fbrCorr可取1~2之间的值。因而,尾数(在这里,也称为位速率校正因子)fbrCorr可被用于提高由指数k给出的初始估值的精度。
该方法可包括确定至少两个潜在指数K1和K2,使得
Figure BDA0001008199560000051
且K2=K1+1。而且,该方法可包括确定至少两个中间估值brx,x∈{1;2},使得brx=fbrCorr×2Kx。可选择至少两个中间估值brx中的一个作为位速率br的估值brest,使得对于x∈{1;2},brmin≤brx<brmax。使用至少两个潜在指数K1和K2有益于确保位速率估值brest的唯一性,尤其是在位速率br接近或等于数值2k的情况下。
如果在至少两个中间估值brx中没有一个满足条件 brmin≤brx<brmax,那么可确定位速率br的估值brest为包含于间隔[brmin, brmax]中的值。可能出现这样的情况,如果由[brmin,brmax]提供的位速率估值已足够精确的话。包含于间隔[brmin,brmax]内的值可以是下限brmin和上限brmax的均值。作为替代方案,或者,另外,可以选择与间隔[brmin, brmax]中的其它值相比具有更大概率为位速率br的值(例如,位速率 br的典型值,诸如由2k给出的位速率)。
帧的位速率代码参数可取L个不同的位速率代码值,L为大于1 的整数。L个位速率代码值一般与开始代码和/或停止代码不同。因而,位速率代码参数可取与开始代码和/或停止代码对应的值以及L个不同的位速率代码值。尾数fbrCorr可依赖于子序列的一个或更多个帧的位速率代码值。换句话说,为了提高初始估值的精度(由间隔[brmin, brmax]提供),一个或更多个帧的位速率代码参数的位速率代码值可被用于信令化尾数fbrCorr的值。
可从一个或更多个帧的位速率代码参数的位速率代码值确定尾数,使得尾数fbrCorr的精度随包含与位速率代码值对应的位速率代码参数的子序列的帧的数量而增加。特别地,尾数fbrCorr的精度可随包含与位速率代码值对应的位速率代码参数的子序列的各帧以因子L增加。因而,可提供位速率估值的希望精度与信令潜伏期和/或开销之间的直接关联。通过这样做,提供位速率信令的高度灵活性。
子序列可包含Q个帧q,q=1,…,Q,具有与位速率代码值对应的位速率代码参数,Q为大于0的整数。参数Q在本文件中也被称为 br_digits。参数cq可以是帧q的位速率代码值,cq∈{0;1;...;L-1}。参数 br_corr可以是被确定为
Figure BDA0001008199560000061
的累积位速率代码。于是,尾数 fbrCorr可由
Figure BDA0001008199560000062
给出。可以看出,随着Q增加,尾数fbrCorr的精度增加。
在优选例子中,Q=3,L=3以及N=4。而且,位速率代码参数可仅包含两个位,由此提供相对少量的位速率信令开销。
如上所述,根据另一方面,描述用于增加位速率的初始估值的精度的方法。换句话说,描述用于确定位流的位速率br的估值brest或者用于增加位速率br的估值brest的精度的方法。而且,描述相应位速率估算器。位流包含帧序列,其中,帧序列中的帧包含不同数量的位。帧序列中的帧与音频和/或视频信号的摘录对应。如在本文件中说明的那样,位流的位速率br的估值brest可以用包含尾数fbrCorr和指数k的浮点表示法来表示。帧序列中的至少一个帧可包含位速率代码参数。该方法包括提供位速率br的下限brmin和上限brmax(作为位速率的初始估值)。而且,该方法包括基于位速率br的下限brmin和/或上限brmax确定指数k。另外,该方法包括基于帧序列的一个或更多个帧的位速率代码参数确定尾数fbrCorr
根据另一方面,描述包含例如处理器的位速率估算器。位速率估算器被配置为确定位流的位速率br的估值brest。位流包含帧序列,其中,帧序列中的多个帧可包含不同数量的位。帧序列中的多个帧与音频信号和/或视频信号的摘录对应。帧序列中的至少两个帧包含 wait_frames参数,其中,帧的wait_frames参数可指示相应帧的处理延迟。位速率估算器,尤其是处理器可被配置为从位流确定帧的子序列的总位数STot。而且,位速率估算器,尤其是处理器可被配置为基于包含于子序列内的帧的数量并且基于子序列的至少两个帧的wait_frames参数确定帧的校正数量N′。另外,位速率估算器,尤其是处理器可被配置为基于总位数STot、基于帧的校正数量N′且基于位流的帧速率fframe确定位速率br的下限brmin和上限brmax
根据另一方面,描述被配置为从一个或更多个单个位流确定合成位流的多路复用设备。多路复用设备包含在本文件中描述的位速率估算器,该位速率估算器被配置为确定该一个或更多个单个位流的位速率的估值。多路复用设备可被配置为基于该一个或更多个单个位流的位速率的估值确定合成位流。被多路复用的一个或更多个单个位流可以是基本流(elementary stream),合成位流可以是MPEG-2传输流。
根据另一方面,描述用于提供具有位速率br的位流的方法,该方法可包括:从音频信号和/或从视频信号产生帧序列。帧序列中的多个帧可与音频信号和/或视频信号的摘录对应或者可指示这些摘录。特别地,帧序列中的多个帧可包含得自音频信号和/或视频信号的摘录的编码数据。
该方法还可包括将wait_frames参数插入到帧序列中的至少两个帧中。帧的wait_frames参数可指示相应帧的处理延迟。如上面说明的那样,wait_frames参数可被用于提供位速率br的初始估值。
该方法包括将位速率代码参数插入到帧序列中的至少两个帧中。位速率代码参数可取不同的位速率代码值。插入的位速率代码参数的位速率代码值一般依赖于位流的位速率br。如在本文件中说明的那样,位速率代码参数的位速率代码值可被用于增加位速率br的初始估值的精度。因而,该方法提供允许以相对低信令开销确定位速率br的精确估值的位流。
位速率代码参数可仅被插入到还包含wait_frames参数的帧中。特别地,只有wait_frames参数指示帧序列的多个帧包含不同数量的位和/或位流不是恒定位速率(CBR)位流,才插入位速率代码参数。通过这样做,可进一步减少信令开销。
如上面说明的那样,位速率代码参数可仅包含两个位。作为替代方案,或者,另外,除了两个或更多个位速率代码值以外,位速率代码参数还可包含开始代码和/或停止代码。因而,位速率信令可以按照灵活和开销有效的方式出现。
根据另一方面,描述具有位速率br的位流。位流包含帧序列,其中,帧序列中的多个帧与音频信号和/或视频信号的摘录对应。帧序列中的至少两个帧可包含wait_frames参数,其中,帧的wait_frames参数指示相应帧的处理延迟。而且,帧序列中的至少两个帧可包含位速率代码参数,其中,位速率代码参数取不同的位速率代码值,并且其中,插入的位速率代码参数的位速率代码值依赖于位流的位速率br。
根据另一方面,描述被配置为产生具有位速率br的位流的编码系统。编码系统(例如,编码系统的处理器)被配置为从音频信号和/ 或从视频信号产生帧序列,其中,帧序列中的多个帧与音频信号和/ 或视频信号的摘录对应。另外,编码系统(例如,编码系统的处理器) 被配置为将wait_frames参数插入到帧序列中的至少两个帧中,其中,帧的wait_frames参数指示相应帧的处理延迟。而且,编码系统(例如,编码系统的处理器)被配置为将位速率代码参数插入到帧序列中的至少两个帧中。位速率代码参数可取不同的位速率代码值。插入的位速率代码参数的实际位速率代码值依赖于位流的位速率br。
根据另一方面,描述软件程序。软件程序可适于在处理器上执行且用于当在处理器上被实施时执行在本文件中说明的方法。
根据另一方面,描述存储介质。存储介质可包含可适于在处理器上执行且用于当在处理器上被实施时执行在本文件中说明的方法步骤的软件程序。
根据另一方面,描述计算机程序产品。计算机程序可包含用于当在计算机上被执行时执行在本文件中说明的方法步骤的可执行指令。
应当注意,包含其在本专利申请中说明的优选实施例的方法和系统可被单独使用或者与在本文件中说明的其它方法和系统组合使用。而且,在本专利申请中说明的方法和系统的所有方面可被任意地组合。特别地,权利要求的特征可以按任意的方式相互组合。
附图说明
以下参照附图以示例性方式解释本发明,其中,
图1示出示例性编码和/或传送系统的框图;以及
图2示出示例性状态机。
具体实施方式
如上面说明的那样,本文件涉及位流的位速率的确定。为了使位流与一个或更多个其它位流合并,可能需要通过例如多路复用设备来确定位速率。这种多路复用设备的例子是MPEG-2传输流(TS)多路复用器。作为替代方案,或者,另外,解码设备可能需要在准备位流解码时确定接收的位流的位速率。
图1是示例性编码和/或传送系统100的框图。系统100包含被配置为产生各一个或更多个位流111的一个或更多个编码设备或编码器 101。位流111可包含例如编码音频信号。位流111可被构建为帧序列,其中,各帧可指示编码音频信号的摘录。位流111的各帧可代表音频信号的预定(时间)长度的摘录(例如,20ms的音频信号)。
位流111被提供给多路复用设备或多路复用器103。多路复用设备103一般包含被配置为在准备多路复用任务时存储位流111的一个或更多个帧的缓冲器102。多路复用设备103可被配置为将多个位流 111合并成合成位流113。各单个位流111可以是基本流(ES),合成位流113可以是传输流(TS),例如,根据MPEG-2标准(MPEG-2,第1部分)的传输流。
合成位流113可通过去多路复用设备或去多路复用器104被去多路复用,并且各单个位流111中的一个或更多个可被提供给各一个或更多个解码设备或解码器105。解码设备105可被配置为从编码位流 111重构音频信号。出于这种目的,解码设备105可利用缓冲器106。
多路复用设备103和/或解码设备105可被配置为确定单个位流 111的位速率。出于这种目的,多路复用设备103和/或解码设备105 可包含位速率估算器或位速率估算单元。位速率估算器可利用以下信息中的一个或更多个来估算位流111的位速率(不需要包含于位流111 内的另外的开销信息)。
·包含于位流111内的一个或更多个帧n的帧大小Sn(例如,位数),n=0,…,N(N+1是为估算位速率而考虑的帧的数量);和/ 或
·指示例如每预定时间间隔(例如,每秒)的帧数的帧速率fframe;和/或
·缓冲器106的状态和/或关于必须通过缓冲器106缓冲一个或更多个帧n的时间量的指示。特别地,缓冲器106的充满状态(例如,存储于缓冲器106内的帧的数量)可被考虑。作为替代方案,或者,另外,帧n需要在处理之前被缓冲的时间间隔的指示可被考虑。缓冲器106的充满状态和/或用于缓冲的时间间隔的指示是所谓的 wait_frames参数。wait_frames参数指示特定帧在被处理之前必须在缓冲器106内等待的时间间隔或帧数。wait_frames参数一般作为信息与位流111的帧一起被包含。
上述的参数中的一个或更多个可被位速率估算器使用以确定位流 111的位速率的估算。一般地,当位速率估算器考虑的帧的数量N增加时,估值的质量提升(尤其是在ABR位流111的情况下)。
可通过使用以下方法获得位速率的估值brEst。为了确定估值brEst,可基于多个帧的帧大小Sn、基于帧速率fframe且基于多个帧中的至少一些的wait_frames参数的值,确定实际位速率br的上限brmax和下限brmin。通过使用界限brmax和brmin,可确定实际位速率br的值的可能的基本范围VBase(k)(例如,两个基本范围)。界限brmax和brmin和 /或基本范围VBase(k)提供实际位速率br的(大概)粗略指示。该指示可通过使用在位流111内传送的位速率信息(例如,位速率代码)被进一步提炼(refine)。特别地,可从在位流111的一个或更多个帧内传送的位速率代码计算位速率校正因子。位速率校正因子可与基本范围VBase(k)结合使用,以确定多个中间位速率估值brx(例如,基于两个基本范围VBase(k)的两个位速率估值)。随后,可通过使用界限brmax和brmin从多个中间位速率估值brx选择位速率的正确估值brEst
可通过评估N+1个帧n(n=0,…,N)的序列的帧大小来确定位速率的下限brmin和上限brmax。特别地,可分析两个相邻开始代码之间的N+1个帧。如在后面更加详细地说明的那样,位流111的至少一些帧可包含位速率代码(这里,称为br_code参数)。位速率代码可具有两个位的长度。在表1中提供位速率代码的位组合的意思的例子。可以看出,位速率代码可与开始代码(位组合11b)对应。
表1
br_code 语义
00b value(br_code)=0
01b value(br_code)=1
10b value(br_code)=2
11b 位速率开始代码
对确定位速率的下限brmin和上限brmax考虑的N+1个帧可与来自位流111的帧序列的子序列对应,其中,仅子序列的第一帧和最后一帧包含开始代码。由此,N+1个帧的该子序列中的第一帧(例如,n=0) 携带第一开始代码。后面是携带开始代码以外的位速率代码(或者根本没有携带位速率代码)的N-1个帧。子序列的第N帧携带第二开始代码。
表2
Figure BDA0001008199560000121
Figure BDA0001008199560000131
*其中,在表2中,Syntax:句法,No.of bits:位数。
表2示出位流111的帧的示例性句法。可以看出,帧包含关于 wait_frames参数的信息。wait_frames参数可被缓冲器106使用以将相应的帧排队。特别地,wait_frames参数可向缓冲器106指示相应帧必须在被随后设备(例如,被解码设备105)处理之前被缓冲的帧的数量。此外,多路复用设备103可利用wait_frames参数确定要在将帧插入到多路复用位流113中之前被缓冲的帧的数量。但是,要用于传送设备中(例如,用于多路复用设备103中),wait_frames参数可能需要被转换。这是由于,为了均衡变化的帧大小,传送设备103中的缓冲器102一般与接收设备105中的缓冲器106相反地操作。
在具有较大大小的帧(与帧的平均大小相比)的情况下,为了确保帧不被处理得太晚,wait_frames参数可减小。另一方面,在具有较短大小的帧(与帧的平均大小相比)的情况下,为了确保帧不被处理得太早,wait_frames参数可增大。
为了确定界限brmin、brmax,N+1个帧的子序列中的帧n的大小 Sn可累积以确定总大小
Figure BDA0001008199560000141
尤其是如果帧的wait_frames参数参照接收相应帧的结束的时间点,则子序列中的第一帧(即,n=0) 的大小Sn一般被忽略。作为替代方案,例如,如果相应帧的wait_frames 参数参照接收帧的开始的时间点,则子序列中的最后一帧(即,n=N) 的大小Sn可被忽略。
而且,可通过评估帧的子序列的帧中的至少一些的wait_frames 参数确定帧的校正数量N′。帧的校正数量N′可由N′= N+wait_frames(0)-wait_frames(N)给出,其中,wait_frames(0)是子序列的第一帧(n=0)的wait_frames参数的值,wait_frames(N)是子序列的最后一帧(n=N)的wait_frames参数的值。如上所述,如果帧n 的大小Sn比平均帧大小
Figure BDA0001008199560000142
(与实际位速率br对应)高,则帧n的wait_frames(n)参数趋于减小(与前一帧n-1的wait_frames(n)参数相比),反之亦然。由此,差值[wait_frames(0)-wait_frames(N)]>0表示子序列的帧的平均大小比平均帧大小
Figure BDA0001008199560000143
高(因此与更多数量的帧(平均上)对应)。以类似的方式,差值[wait_frames(0)-wait_frames(N)]<0 表示子序列的帧的平均大小比平均帧大小
Figure BDA0001008199560000144
低(因此与更少数量的帧(平均上)对应)。差值[wait_frames(0)-wait_frames(N)]的量表示子序列的帧的平均大小比平均帧大小
Figure BDA0001008199560000145
高或低多少(用帧数表达)。因而,如果各帧n(n=1,…,N)具有平均帧大小
Figure BDA0001008199560000146
那么帧的校正数量N′提供会与帧的子序列的确定的总大小STot对应的帧数的指示。
wait_frames(n)参数一般具有预定的分辨率。如表2的例子所示,帧的wait_frames(n)参数包含总共3个位,因此可取8个不同的值。一般地,wait_frames(n)参数指示作为帧的整数倍的帧的处理延迟。由此,如果各帧n(n=1,…,N)具有平均帧大小
Figure BDA0001008199560000151
则帧的校正数量N′可与会与帧的子序列的确定的总大小STot对应的帧数相差一个帧(即, N′-1或N′+1)。由此,可通过使用下式用STot、N′和帧速率fframe确定实际位速率br的下限和上限。
Figure BDA0001008199560000152
Figure BDA0001008199560000153
ABR位流111的实际位速率br即平均位速率位于下限与上限之间,即,brmin<br<brmax
应当注意,包含位速率信息的帧、尤其是包含位速率代码的帧,不一定必然随后出现在位流内。如表2所示,位流格式允许在逐帧的基础上发送wait_frames参数并由此发送br_code参数。如果由br_code 参数的传送导致的开销是敏感因素,那么可仅每第2个或第3个帧发送位速率信息。尽管这样,如上所述,两个相邻的开始代码之间的子序列内的所有帧可被用于确定实际位速率br的上限和下限。
由此,可确定实际位速率br位于间隔[brmin,brmax]内。该间隔提供实际位速率br的(大概)粗略估值brest。如后面将说明的那样,br_code 参数可被用于提炼实际位速率br的该(大概)粗略估值brest。特别地, br_code参数可用于在逐帧的基础上提炼估值brest。出于这种目的,可以使用实际位速率br的浮点表示法。这种浮点表示法包含指数k(以 2为底的指数)和尾数fbrCorr。指数k可基于界限brmin、brmax被确定,并且/或者,尾数fbrCorr可通过使用包含于位流111的一个或更多个帧内的br_code参数被确定。
尾数fbrCorr(这里,也称为位速率校正因子)可被定义为取间隔[1, 2)内的值,指数k可以是以2为底的指数,使得实际位速率的估值可由下式给出:
brest=fbrCorr×2k
以下,描述用于确定指数k以及用于确定尾数fbrCorr的方法。
实际位速率可取以下的值brmin<br<brmax。从下限和上限的公式可以看出,间隔[brmin,brmax]的宽度一般随着考虑的帧的数量N的增加而减小。特别地,差值△=(brmax-brmin)由下式给出:
Figure BDA0001008199560000161
可以看出,在最坏的情况下(例如,对于N=2或3个帧),对于k的两个相邻的整数值(这里,称为K1和K2,K2=K1+1),间隔[brmin, brmax]包含以下的基本范围中的两个:
VBase(k)=[2k kbit/s,2(k+1)kbit/s[。
由此,两个基本范围Vbase(K1)和Vbase(K2)可基于界限brmin,brmax中的至少一个被确定。特别地,两个基本范围可被确定,使得满足以下的条件:
brmin∈VBase(K1)
K2=K1+1。
确定K1和K2的替代性方式由下式给出:
Figure BDA0001008199560000162
K2=K1+1。
两种方法提供相同的基本范围,即相同的指数K1和K2
尾数或位速率校正因子fbrCorr可通过使用包含于位流111的一个或更多个帧中的一个或更多个位速率代码(即,br_code参数)被确定。如表1所示,帧的br_code参数可取三个不同的值即0、1、2。从一个或更多个帧的子序列的br_code参数的值,可以确定所谓的br_corr值。然后可基于一个或更多个帧的子序列的br_corr值计算位速率校正因子fbrCorr
特别地,可基于包含于上述的子序列的帧内的br_code参数的值,确定br_corr值,其中,子序列的第一帧和最后一帧包含与开始代码对应的br_code参数,并且,除了第一帧和最后一帧,子序列不包含具有开始代码的其它帧。
可通过将单个帧的br_code参数的值解释为底为3、最高有效位在前(MSB first)的数值的数字,确定这种子序列的br_corr值。作为例子,帧的子序列可包含br_code参数的以下的值的序列:11 01 10 00 11,其代表封装于两个开始代码之间的代码01 10 00。该代码代表 1*3^2+2*3^1+0*3^0=15的br_corr值。
位速率校正因子可根据下式被计算:
Figure BDA0001008199560000171
其中,br_digits表示已在两个相邻的位速率开始代码之间发送的 br_code参数的数量。
对于以上的例子,这得到:
Figure BDA0001008199560000172
作为替代方案,或者,另外,可通过迭代的方式即在逐帧的基础上确定位速率校正因子fbrCorr。在接收包含第一开始代码的帧n(例如, n=0)之后,可识别包含具有与开始代码不同的值的br_code参数的帧 i(例如,i=1)。参数i计数包含具有与开始代码不同的值的br_code 参数的帧的数量。由此,参数i从1开始并且升到br_digits。通过使用帧i的br_code参数,可以以递归的方式确定中间位速率校正因子 fbrCorr(i)如下:
Figure BDA0001008199560000173
其中,fbrCorr(0)=1,并且,br_code(i)表示帧i的br_code参数的值。通过使用以上的递归式,可通过包含具有与开始代码不同的值的 br_code参数的各帧提炼中间位速率校正因子fbrCorr(i)。一旦接收包含第二开始代码的帧,中间位速率校正因子fbrCorr(i)就可被设定为位速率校正因子fbrCorr。因而,位速率校正因子fbrCorr可在逐帧的基础上被提炼。
图2的状态图200示出可如何以迭代的方式累积br_corr和 br_digits值。状态图或状态机200包含监视包含与开始代码对应的 br_code参数(即,在示出的例子中,为具有值11b的br_code参数) 的帧的有无的初始状态201。如果具有开始代码以外的br_code参数的帧被检测到(变换212),那么状态机200保持在初始状态201内。另一方面,如果具有与开始代码对应的br_code参数的帧被检测到(变换211),那么状态机200移至初始化状态202。在初始化状态202 内,参数br_digits参数和br_corr可被设定为零。
在检测到具有与开始代码对应的br_code参数的随后帧时(变换 211),位速率的当前估值可被重设。在检测到具有与开始代码以外的值对应的br_code参数的随后帧时(变换212),可在累积状态203 中出现参数br_digits和br_corr的累积。只要接收到具有与开始代码以外的值对应的br_code参数的帧(变换212),参数br_digits和br_corr 的累积/确定就可进行。因而,参数br_digits和br_corr可在逐帧的基础上被更新,由此为位速率校正因子fbrCorr提供更精确的值(例如,使用上式)。
新的开始代码的检测(变换211)可指示要确定新的位速率值。参数br_digits和br_corr可然后在初始化状态202中被重设。
如图2所示,如果接收到两个或更多个连续的位速率开始代码,那么位速率计算可被复位。连续的位速率开始代码可被用于明确信令化为位流111的编码器101修改位速率(例如,ABR位速率)。
应当注意,在位流111内携带的程序(例如,音频信号的)的变化会导致累积状态203中的累积处理的复位以及复位到状态201或状态202。
如上所述,可在接收帧和/或br_code参数的值时依次解码位速率校正因子fbrCorr。br_code参数的另外的数字即另外的值以因子3提高位速率校正因子fbrCorr的精度。
可基于位速率校正因子fbrCorr(即,基于尾数)以及基于指数K1和K2中的至少一个,确定估值brEst。特别地,可通过使用下式分别对 K1和K2计算位速率的两个中间估值br1和br2
Figure BDA0001008199560000181
可通过分别比较估值br1和br2与下限brmin和上限brmax,确定正确的估值(即,br1或br2)。满足以下条件的位速率估值与估算的位速率对应brEst=brx
brmin<brx<brmax对于x∈{1;2}。
如果不存在满足以上条件的brx,那么这意味着由间隔[brmin,brmax] 给出的位速率估值比可基于位速率校正因子确定的估值更精确。在这种情况下,实际位速率br位于范围[brmin,brmax]内。典型的位速率值(例如,修约(rounded)位速率值)可作为估算的位速率brEst从范围[brmin, brmax]中选择。作为替代方案,位速率的估值可被确定为brmin和brmax的几何平均,或者如果需要位速率的上估值(upper estimate),那么 brmax可被当作估算的位速率brEst
在优选实施例中,3个br_digits(即,三个帧)可被用于规定位速率(尤其是规定位速率校正因子fbrCorr)。由此,通过包含具有开始代码的帧,位速率计算可基于总共5个帧。在第一步骤中,确定上限和下限。如果界限满足以下的条件,则位速率基本范围的选择一般仅是唯一的:brmax<2*brmin→brmax/brmin<=2。从上式发现:
Figure BDA0001008199560000191
对于N=5,上述的-平均化-得到3/2(比2小,并且位于范围[1,2] 内)。使用3个数字在各位速率基本范围中提供27个“步”。单个步与2^(1/27)=1.027对应。由此,使用在本文件中描述的方法的位速率估值的精度(对于五个帧)有望为约3%。
如上所述,可基于界限brmin和brmax确定(至少)两个基本范围 Vbase(k)。注意,对于与基本范围中的一个的极限对应或者接近它的实际位速率br,即2kkbit/s,例如,128kbps,界限brmin和brmax会导致不同的基本范围。在一个帧中,界限brmin和brma可导致[64,128]基本范围,并且,在下一帧中,导致[128,256]基本范围。通过对帧的各子序列确定(至少)两个基本范围Vbase(k),确保确定提供正确位速率估算的至少一个基本范围。而且,这允许位速率校正因子随时间保持稳定(在理想情况下,在以上的例子中,fbrCorr=0)。然后,只有[128,256]基本范围在上下限brmin和brmax之间放置位速率。使用这种逻辑允许编码器101发送不参照使用的实际帧大小的恒定的校正因子fbrCorr
也可对VBR位流111使用表2的句法所示的位速率代码(即, br_code参数)。如上所述,可从一个或更多个帧的br_code参数的一个或更多个值确定br_corr参数。br_corr参数可然后与表3结合使用以确定VBR位流111的位速率。由此,即使在VBR位流111的情况下,也可使用描述的br_code参数来提供位流111的位速率的估值。
表3
Figure BDA0001008199560000202
*Etc.:等等
因而,这里提出使用用于估算ABR位流的初始位速率范围的帧序列的wait_frames参数和帧大小。可通过发送另外的两个位(作为位速率代码参数)来进一步精细化计算。为了信令化关于位速率的更精确信息,位速率代码参数可附加于包含wait_frames参数的帧上。对于恒定位速率(CBR,一般地,wait_frames=0)位流,由于所有帧具有相同的大小(+/-1字节),一般不需要另外的信令。对于可变位速率(VBR,一般地,wait_frames=7)位流,可以使用两位的位速率代码参数以出于报告目的而信令化绝对目标或平均位速率(在表3 的上下文中说明)。
由此,在本文件中,描述了用于信令化和/或用于估算位流的位速率的方法。描述的方法允许仅通过使用位流内的有限量的开销数据来精确地确定位速率。而且,描述的方法允许以迭代或依次的方式估算位速率。注意,位速率估算的精度可灵活地增加(例如,在逐帧的基础上)。
在本文件中描述的方法和系统可实现为软件、固件和/或硬件。某些成分例如可实现为在数字信号处理器或微处理器上运行的软件。其它成分可例如实现为硬件或应用特定集成电路。在描述的方法和系统中遇到的信号可存储于诸如随机存取存储器或光学存储介质的介质上。它们可通过诸如无线电网络、卫星网络、例如为因特网的无线网络或有线网络被传送。利用在本文件中描述的系统和系统的典型设备是便携式电子设备或用于存储和/或呈现音频信号的其它消费者设备。
描述本文件的其它方面如下:
在本文件中建议在用于信令化位速率信息的位流中保留预定数量的位。由于这些保留的位一般增加元数据负担,因此数量应被选择为相对少,例如,处于[2,8]的范围中,优选处于[2,4]的范围中,最优选为2。
少量的所述保留位可能由于缺少这种有限(较少)数量的位可编码的数值范围而不能将施加的位速率编码,因此,本文件建议在数个随后的帧上分发位速率信令。
而且,本文件提供位速率的间接编码,使得,根据所述数个随后帧内的当前帧的位置,所述数个随后帧上的所述预定位数的值解码成所述位的重要性(significance)。这将进一步减少用于编码/信令化位速率的位需要。另外,本文件描述了用于确定位速率的估算的信令和测量的组合使用。通过这样做,可以减少以超出可测量精度的精度信令化位速率所需要的位数。
例如,随后帧的数量为在检测到前一帧具有在该前一帧的预定位数中编码的开始信号之后并且在检测到闭合帧(closing frame)具有在该闭合帧的预定位数中编码的停止信号之前接收的帧的数量。所述前一帧和结束帧由此为所述数量的帧提供括号。
根据一个方面,建议信令化位流中的位速率的方法,位流包含多个帧和预定数量的位,以便于位速率信令,该方法包括:
-在第一帧中通过所述预定数量的位传送位速率开始代码;
-接收随后帧并且缓冲各随后帧的所述预定数量的位的值;
-在第二帧中通过所述预定数量的位传送位速率停止代码,所述第二帧在所述随后帧之后;和
-通过使用包含于所述随后帧中的所述预定数量的位的缓冲值计算位速率的估值。
在优选例子中,位速率开始代码和位速率停止代码是相同的,例如,按照两个位的格式的“11”。
作为直接编码所述位速率估值并且在数个随后帧上分发编码位速率的替代,所有随后帧的所述预定数量的位的所述值可代表在离散位速率值的预定的表中编码的离散位速率值的位置。在本例子中,所有随后值上的所述预定数量的位的值编码在预定表中编码的固定离散位速率的位置。这在位要求上有所节省。
在后一例子中,大致对数坐标,例如,br~2^(x/k)*br_min-k为限定位速率的因子2之间的步数的常数-可例如被建议,以编码位速率。x是在位流中(通过预定数量的位)传送的代码的数值。在理想情况下,位速率被修约到下一可用步骤(根据可用分辨率)。这产生例如k=4的合理结果并且提供可以是例如表中的归属离散位置的离散预定位速率值:16、20、24、28、32、40、48、56、64、80、96、112、 128、160、192等。例如,“16”可在这种表中被分配位置“0”;“20”可在这种表中被分配位置“1”;“24”可在这种表中被分配位置“2”;“28”可在这种表中被分配位置“3”,等等。
作为直接编码位速率的替代,可编码离散位速率值的位置,由此节省需要的位。
在各种例子中,对信令位速率保留的位数将确定解码位速率估值所需要的随后帧的数量。通过对位速率信令使用两个位实现了良好的结果,这里,可使用5个帧来解码位速率。
使用以上的示例性的表,为了信令例如位于表中的位置13的 160kbps,可能需要传送13(指的是表中的160kbps的位置!)=1*9+1*3+1*1=>11 01 01 01 11,“11”是开始和停止代码。三个“符号”在开始代码与停止代码之间被传送:“01”->“01”->“01”。因此,在5个帧(包含开始和停止代码帧)之后,获得完整的结果-其中,在具有开始和停止代码的帧之间传送的帧中,编码实际的位速率位置。
作为替代方案,并且,作为使用之前说明的预定义的编码表方法的替代,计算位速率的估值可包含通过使用接收帧的实际大小计算第一位速率估值和基于所有随后帧的所述预定数量的位的所述值计算位速率校正因子,其中,位速率校正因子可被施加于第一位速率估值,以产生位速率的估值。在本例子中,预定位数编码-分布于数个随后帧上-校正因子,而不是直接或间接编码位速率。这里,从接收的帧的实际大小在第一步骤中粗略估算位速率,而在第二步骤中,施加在随后帧的所述预定数量的位中编码的校正因子。
所述位速率校正因子可例如根据下式被计算:
Figure BDA0001008199560000231
其中,brcorr是从所有随后帧的所述预定数量的位的所述值导出的, brdigits表示接收的随后帧的数量,并且,所述预定位数为2。
也可选择与“3”不同的建议位速率校正因子的指数中的底的分母 (basedenominator)。这里,进行选择,使得位速率校正因子将产生在范围[1,2]中的值。
更一般地,可例如根据下式计算所述位速率校正因子:
Figure BDA0001008199560000241
其中,br_corr是从所有随后帧的所述预定数量的位的所述值导出的, br_digits表示接收的随后帧的数量,br_bits表示所述预定位数。
而且,也可选择与“(2br_bits-1)br_digits”不同的建议位速率校正因子的指数中的底的分母(见上)。这里,进行选择,使得两个位被用于信令(br_bits=2)且位速率校正因子将产生在范围[1,2]中的值。
在后面的例子中,计算第一位速率估值可包含基于所述实际帧大小计算所述第一位速率估值的上限和下限,其中,可进一步通过使用代表帧速率和与接收的帧相关的帧缓冲填充水平的接收值精细化计算上限和下限。
在上述的例子的进一步的改善中,通过使用下式对所述第一位速率估值确定第一和第二基本范围:
VBase(k)=[2k kbit/s,2(k+1)kbit/s[。
其中,第一和第二基本范围(VBase(K1)和VBase(K2))是满足以下条件的那些:brmin∈VBase(K1)且K2=K1+1,其中,brmin代表所述下限,其中,计算位速率的估值优选还包含:
-向所述第一基本范围施加位速率校正因子的第一步骤;
-向所述第二基本范围施加位速率校正因子的第二步骤;和
-确定第一步骤结果或第二步骤结果以产生位速率的估值。
在这种例子中,如果施加到所述第一基本范围的位速率校正因子位于所述上限与下限之间,那么第一步骤结果会产生位速率的估值,并且,如果施加到所述第二基本范围的位速率校正因子位于所述上限与下限之间,那么第二步骤结果会产生位速率的估值。
为了便于上述的任何方法,描述了位流格式,其中,位流格式包含用于编码与位流有关的位速率的预定数量的位,其中,所述预定数量的位部分地反映位速率,使得数个随后帧的所述预定数量的位的所有值产生位速率。
优选地,从在数个随后帧的所述预定数量的位中编码的开始位速率代码和停止位速率代码确定随后帧的数量。
与在数量系统中将具有数字数量的数量编码类似,随后帧的序列中的帧的位置可与包含于所述帧中的预定数量的位的重要性有关。
另一例子还可包括:例如在应在接收到不同位流(例如,与“广告插入”或节目变化有关)之后确定不同位速率时,例如,为了明确复位位速率解码,在两个直接随后帧的预定数量的位中发送“开始代码”和“停止代码”(“11”->“11”)。
本文件的特定列举方面为:
方面1一种信令位流中的位速率的方法,位流包含多个帧和预定数量的位以便于位速率信令,该方法包括:
通过所述预定数量的位在第一帧中传送位速率开始代码;
接收随后帧并且缓冲各随后帧的所述预定数量的位的值;
在第二帧中通过所述预定数量的位传送位速率停止代码,所述第二帧在所述随后帧之后;和
通过使用包含于所述随后帧中的所述预定数量的位的缓冲值计算位速率的估值。
方面2.根据方面1所述的方法,其中,位速率开始代码和位速率停止代码相同。
方面3.根据方面1所述的方法,其中,所有随后帧的所述预定数量的位的所述值代表在离散位速率值的预定表中编码的离散位速率值的位置。
方面4.根据方面1所述的方法,其中,
计算位速率的估值包含:
通过使用接收的帧的实际大小计算第一位速率估值;和
基于所有随后帧的所述预定数量的位的所述值计算位速率校正因子,其中,位速率校正因子被施加于第一位速率估值以产生位速率的估值。
方面5.根据方面4所述的方法,其中,计算第一位速率估算包含基于所述实际帧大小计算所述第一位速率估值的上限和下限。
方面6.根据方面5所述的方法,其中,计算上限和下限进一步基于代表帧速率和帧缓冲填充水平的接收值。
方面7.根据方面5所述的方法,还包括通过使用下式确定所述第一位速率估值的第一和第二基本范围:
VBase(k)=[2k kbit/s,2(k+1)kbit/s[,
其中,第一和第二基本范围(Vbase(K1)和Vbase(K2))是满足以下条件的那些:
brmin∈VBase(K1),以及
K2=K1+1,
其中,brmin代表所述下限。
方面8.根据方面7所述的方法,其中,估算位速率包含:
向所述第一基本范围施加位速率校正因子的第一步骤;
向所述第二基本范围施加位速率校正因子的第二步骤;和
确定第一步骤结果或第二步骤结果以产生位速率的估值。
方面9.根据方面8所述的方法,其中,如果施加到所述第一基本范围的位速率校正因子位于所述上限与下限之间,那么第一步骤结果产生位速率的估值。
方面10.根据方面8所述的方法,其中,如果施加到所述第二基本范围的位速率校正因子位于所述上限与下限之间,那么第二步骤结果产生位速率的估值。
方面11.根据方面4所述的方法,其中,所述位速率校正因子根据下式被计算:
Figure BDA0001008199560000261
其中,
brcorr是从所有随后帧的所述预定数量的位的所述值导出的,brdigits表示接收的随后帧的数量,并且,
所述预定位数为2。
方面12.根据方面2所述的方法,其中,所述预定位数为2,位速率开始代码和位速率停止代码为“11”。
方面13.一种包含用于编码与位流有关的位速率的预定数量的位的位流格式,其中,所述预定位数部分地反映位速率,使得数个随后帧的所述预定数量的位的所有值产生位速率。
方面14.根据方面13所述的位流格式,其中,从在所述预定数量的位中编码的开始位速率代码和停止位速率代码确定随后帧的数量。
方面15.根据方面13所述的位流格式,其中,随后帧序列中的帧的位置与包含于所述帧中的所述预定数量的位的重要性有关。

Claims (28)

1.一种用于确定位流(111)的位速率br的估值brest的方法,其中,位流(111)包含帧序列,帧序列中的帧包含不同数量的位,帧序列中的帧与音频和/或视频信号的摘录对应,摘录具有恒定的时间长度,帧序列中的至少两个帧包含wait_frames参数,帧的wait_frames参数指示相应帧在多路复用设备和/或解码设备对该帧的处理之前要被多路复用设备和/或解码设备延迟的帧数,该方法包括:
-对来自位流(111)的帧的子序列的N个帧确定总位数STot
-通过用该子序列的第一帧和第二帧的wait_frames参数之间的差值偏移帧数N来确定帧的校正数量N′,其中第一帧对应于子序列开始的帧,第二帧对应于子序列结束的帧;以及
-基于总位数STot、基于帧的校正数量N′、以及基于位流(111)的帧速率fframe,确定位速率br的位速率下限brmin和位速率上限brmax,其中,
-位速率下限由
Figure FDA0002288958540000011
给出,以及/或者
-位速率上限由
Figure FDA0002288958540000012
给出,
其中,该位速率估值brest位于间隔[brmin,brmax]内。
2.根据权利要求1所述的方法,其中,
-帧的子序列包含N+1个帧n,n=0,...,N,
-子序列开始的帧n=0,以及
-子序列结束的帧n=N。
3.根据权利要求1所述的方法,其中,
-帧的wait_frames参数指示相对于相应帧的结束的处理延迟,
-总位数STot被确定为
Figure FDA0002288958540000013
以及
-Sn是子序列的帧n的位数。
4.根据权利要求1~3中的任一项所述的方法,其中,
-帧序列中的至少一些帧包含位速率代码参数,
-位速率代码参数的值与开始代码和/或停止代码对应,以及
-基于开始代码和/或停止代码从帧序列确定子序列。
5.根据权利要求4所述的方法,其中,子序列被确定为使得,
-子序列开始的帧包含与开始代码对应的位速率代码参数,
-子序列结束的帧包含与停止代码对应的位速率代码参数,以及
-在子序列中没有其它帧包含与开始代码或停止代码对应的位速率代码参数。
6.根据权利要求4所述的方法,其中,开始代码等于停止代码。
7.根据权利要求4所述的方法,其中,只有包含wait_frames参数的帧包含位速率代码参数。
8.根据权利要求4所述的方法,其中,
-位流(111)的位速率br的估值brest能够用包含尾数fbrCorr和指数k的浮点表示法来表示,
-指数k基于位速率br的位速率下限brmin和/或位速率上限brmax被确定,以及
-尾数fbrCorr基于子序列的一个或更多个帧的位速率代码参数被确定。
9.根据权利要求8所述的方法,其中,
-所述浮点表示法是二进制浮点表示法,使得brest=fbrCorr×2k,以及
-尾数fbrCorr取1~2之间的值。
10.根据权利要求9所述的方法,其中,该方法包括:
-确定至少两个潜在指数K1和K2,使得
Figure FDA0002288958540000031
且K2=K1+1,
-确定至少两个中间估值brx,x∈{1;2},使得brx=fbrCorr×2Kx,以及
-选择至少两个中间估值brx中的一个作为位速率br的估值brest,使得对x∈{1;2},brmin≤brx<brmax
11.根据权利要求10所述的方法,其中,如果在至少两个中间估值brx中没有一个满足条件brmin≤brx<brmax,那么确定位速率br的估值brest为包含于间隔[brmin,brmax]中的值。
12.根据权利要求11所述的方法,其中,包含于间隔[brmin,brmax]中的值为:
-位速率下限brmin和位速率上限brmax的均值;和/或
-以brmax作为安全的估值。
13.根据权利要求9所述的方法,其中,
-帧的位速率代码参数取L个不同的位速率代码值,L为大于1的整数,
-L个位速率代码值与开始代码和/或停止代码不同,以及
-尾数fbrCorr依赖于子序列的一个或更多个帧的位速率代码值。
14.根据权利要求13所述的方法,其中,尾数fbrCorr的精度随包含与位速率代码值对应的位速率代码参数的子序列的帧数增加而增加。
15.根据权利要求14所述的方法,其中,尾数fbrCorr的精度随包含与位速率代码值对应的位速率代码参数的子序列的帧数增加而以因子L增加。
16.根据权利要求13所述的方法,其中,
-子序列包含Q个帧q,q=1,...,Q,具有与位速率代码值对应的位速率代码参数,Q为大于0的整数,
-cq是帧q的位速率代码值,cq∈{0;1;...;L-1},
-br_corr是被确定为
Figure FDA0002288958540000041
的累积位速率代码,以及
-尾数fbrCorr
Figure FDA0002288958540000042
给出。
17.根据权利要求16所述的方法,其中,
-Q=3,
-L=3,以及
-N=4。
18.根据权利要求4所述的方法,其中,位速率代码参数包含两个位。
19.根据权利要求1~3中的任一项所述的方法,其中,
-位流(111)表现被称为ABR的平均位速率,以及/或者
-位流(111)遵循缓冲器模型并且使用wait_frames参数来信令化该缓冲模型的状态;以及/或者
-位流(111)的帧速率fframe是恒定的。
20.一种位速率估算器,包含处理器,被配置为确定位流(111)的位速率br的估值brest,其中,位流(111)包含帧序列,帧序列中的帧包含不同数量的位,帧序列中的帧与音频和/或视频信号的摘录对应,摘录具有恒定的时间长度,帧序列中的至少两个帧包含wait_frames参数,帧的wait_frames参数指示相应帧在多路复用设备和/或解码设备对该帧的处理之前要被多路复用设备和/或解码设备延迟的帧数,处理器被配置为:
-对来自位流(111)的帧的子序列的N个帧确定总位数STot
-通过用该子序列的第一帧和第二帧的wait_frames参数之间的差值偏移帧数N来确定帧的校正数量N′,其中第一帧对应于子序列开始的帧,第二帧对应于子序列结束的帧;以及
-基于总位数STot、基于帧的校正数量N′、以及基于位流(111)的帧速率fframe,确定位速率br的位速率下限brmin和位速率上限brmax,其中,
-位速率下限由
Figure FDA0002288958540000051
给出,以及/或者
-位速率上限由
Figure FDA0002288958540000052
给出,
其中,该位速率估值brest位于间隔[brmin,brmax]内。
21.一种多路复用设备(103),被配置为从一个或更多个单个位流(111)确定合成位流(113),其中,多路复用设备(103)包含被配置为确定一个或更多个单个位流(111)的位速率的估值的根据权利要求20所述的位速率估算器,多路复用设备(103)被配置为基于一个或更多个单个位流(111)的位速率的估值确定合成位流(113)。
22.根据权利要求21所述的多路复用设备(103),其中,
-一个或更多个单个位流(111)是基本流,以及
-合成位流(113)是MPEG-2传输流。
23.一种用于提供具有位速率br的位流(111)的方法,该方法包括:
-从音频和/或视频信号产生帧序列,其中,帧序列中的帧与音频和/或视频信号的摘录对应,摘录具有恒定的时间长度,帧序列中的多个帧包括不同数量的位;
-将wait_frames参数插入到帧序列中的至少两个帧中,其中,帧的wait_frames参数指示相应帧在多路复用设备和/或解码设备对该帧的处理之前要被多路复用设备和/或解码设备延迟的帧数;以及
-其中,wait_frames参数使得所述多路复用设备和/或解码设备能够通过用来自位流(111)的帧的子序列的第一帧和第二帧的wait_frames参数之间的差值偏移该子序列的帧数N来确定帧的校正数量N′,其中第一帧对应于子序列开始的帧,第二帧对应于子序列结束的帧;以及
-其中,所述多路复用设备和/或解码设备能基于总位数STot、基于帧的校正数量N′、以及基于位流(111)的帧速率fframe,确定所述位流(111)的位速率br的估值brest为被包含在位速率br的位速率下限brmin和位速率上限brmax之间的值,其中,
-位速率下限出
Figure FDA0002288958540000061
给出,以及/或者位速率上限由
Figure FDA0002288958540000062
给出。
24.根据权利要求23所述的方法,其中,位速率代码参数仅被插入到还包含wait_frames参数的帧中。
25.根据权利要求24所述的方法,其中,只有wait_frames参数指示帧序列中的帧包含不同数量的位时,才插入位速率代码参数。
26.根据权利要求23~25中的任一项所述的方法,其中,位速率代码参数包含两个位。
27.根据权利要求23~25中的任一项所述的方法,其中,除了两个或更多个位速率代码值以外,位速率代码参数还包含开始代码和/或停止代码。
28.一种编码系统(101),被配置为产生具有位速率br的位流(111),其中,编码系统(101)被配置为进行以下操作:
-从音频和/或视频信号产生帧序列,其中,帧序列中的帧与音频和/或视频信号的摘录对应,摘录具有恒定的时间长度,帧序列中的帧包含不同数量的位;
-将wait_frames参数插入到帧序列中的至少两个帧中,其中,帧的wait_frames参数指示相应帧在多路复用设备和/或解码设备对该帧的处理之前要被多路复用设备和/或解码设备延迟的帧数;以及
-其中,wait_frames参数使得所述多路复用设备和/或解码设备能够通过用来自位流(111)的帧的子序列的第一帧和第二帧的wait_frames参数之间的差值偏移该子序列的帧数N来确定帧的校正数量N′,其中第一帧对应于子序列开始的帧,第二帧对应于子序列结束的帧;以及
-其中,所述多路复用设备和/或解码设备能基于总位数STot、基于帧的校正数量N′、以及基于位流(111)的帧速率fframe,确定所述位流(111)的位速率br的估值brest为被包含在位速率br的位速率下限brmin和位速率上限brmax之间的值,其中,
-位速率下限由
Figure FDA0002288958540000071
给出,以及/或者,位速率上限由
Figure FDA0002288958540000072
给出。
CN201480066065.4A 2013-12-02 2014-11-27 位速率估值确定方法、位速率估算器、多路复用设备、位流提供方法和编码系统 Active CN105849800B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13195368 2013-12-02
EP13195368.9 2013-12-02
US201461986351P 2014-04-30 2014-04-30
US61/986,351 2014-04-30
PCT/EP2014/075799 WO2015082298A1 (en) 2013-12-02 2014-11-27 Method for bitrate signaling and bitstream format enabling such method

Publications (2)

Publication Number Publication Date
CN105849800A CN105849800A (zh) 2016-08-10
CN105849800B true CN105849800B (zh) 2020-04-10

Family

ID=49683597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480066065.4A Active CN105849800B (zh) 2013-12-02 2014-11-27 位速率估值确定方法、位速率估算器、多路复用设备、位流提供方法和编码系统

Country Status (5)

Country Link
US (1) US10074382B2 (zh)
EP (1) EP3078023B1 (zh)
JP (1) JP6271756B2 (zh)
CN (1) CN105849800B (zh)
WO (1) WO2015082298A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794574B2 (en) * 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10742708B2 (en) 2017-02-23 2020-08-11 Netflix, Inc. Iterative techniques for generating multiple encoded versions of a media title
US11166034B2 (en) 2017-02-23 2021-11-02 Netflix, Inc. Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric
US11153585B2 (en) 2017-02-23 2021-10-19 Netflix, Inc. Optimizing encoding operations when generating encoded versions of a media title
US10897618B2 (en) 2017-02-23 2021-01-19 Netflix, Inc. Techniques for positioning key frames within encoded video sequences
US10666992B2 (en) 2017-07-18 2020-05-26 Netflix, Inc. Encoding techniques for optimizing distortion and bitrate
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097781A (ja) * 2006-10-16 2008-04-24 Matsushita Electric Ind Co Ltd 音声再生装置
CN103137183A (zh) * 2011-11-30 2013-06-05 三星电子株式会社 用于确定音频内容的比特率的设备和方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5159447A (en) 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
GB2307613B (en) 1995-08-31 2000-03-22 British Broadcasting Corp Switching bit-rate reduced signals
US6574593B1 (en) 1999-09-22 2003-06-03 Conexant Systems, Inc. Codebook tables for encoding and decoding
JP3807193B2 (ja) * 2000-05-25 2006-08-09 日本ビクター株式会社 多重化方法及び多重化装置
JP2002218458A (ja) * 2001-01-12 2002-08-02 Matsushita Electric Ind Co Ltd 映像再生装置
US7062429B2 (en) * 2001-09-07 2006-06-13 Agere Systems Inc. Distortion-based method and apparatus for buffer control in a communication system
CN1557072A (zh) * 2001-09-21 2004-12-22 ���˹���Ѷ��� 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US20050036549A1 (en) 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US8107531B2 (en) 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7263126B2 (en) 2003-09-15 2007-08-28 Sharp Laboratories Of America, Inc. System and method for transcoding with adaptive bit rate control
US8502706B2 (en) 2003-12-18 2013-08-06 Intel Corporation Bit allocation for encoding track information
KR100621581B1 (ko) 2004-07-15 2006-09-13 삼성전자주식회사 기초 계층을 포함하는 비트스트림을 프리디코딩,디코딩하는 방법, 및 장치
JP4728760B2 (ja) * 2005-09-27 2011-07-20 パナソニック株式会社 情報再生装置
KR101571573B1 (ko) 2007-09-28 2015-11-24 돌비 레버러토리즈 라이쎈싱 코오포레이션 부가적인 정보 역량을 이용한 멀티미디어 코딩 및 디코딩
WO2010005691A1 (en) 2008-06-16 2010-01-14 Dolby Laboratories Licensing Corporation Rate control model adaptation based on slice dependencies for video coding
US20100150168A1 (en) * 2008-11-17 2010-06-17 Chanchal Chatterjee Method and apparatus for multiplexing of digital video
JP5206382B2 (ja) * 2008-12-10 2013-06-12 ソニー株式会社 画像処理装置、画像処理方法およびプログラム
EP2237557A1 (en) 2009-04-03 2010-10-06 Panasonic Corporation Coding for filter coefficients
US8510107B2 (en) 2009-11-18 2013-08-13 General Instrument Corporation Audio data bit rate detector
JP2011257870A (ja) * 2010-06-07 2011-12-22 Visionere Corp 光ディスク再生装置、光ディスク、データ配信システム、およびデータ配信方法
KR20130122353A (ko) 2012-04-30 2013-11-07 삼성전자주식회사 비트율 추정 장치 및 그것의 비트율 추정 방법
US10021409B2 (en) * 2012-05-09 2018-07-10 Integrated Device Technology, Inc. Apparatuses and methods for estimating bitstream bit counts
KR20150029007A (ko) * 2012-07-03 2015-03-17 톰슨 라이센싱 기록 매체 상의 타임 시프트 기능에 관한 데이터 기록 장치 및 방법
US9462032B2 (en) * 2013-07-24 2016-10-04 Google Inc. Streaming media content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097781A (ja) * 2006-10-16 2008-04-24 Matsushita Electric Ind Co Ltd 音声再生装置
CN103137183A (zh) * 2011-11-30 2013-06-05 三星电子株式会社 用于确定音频内容的比特率的设备和方法

Also Published As

Publication number Publication date
JP2017504282A (ja) 2017-02-02
EP3078023B1 (en) 2019-12-25
US10074382B2 (en) 2018-09-11
WO2015082298A1 (en) 2015-06-11
CN105849800A (zh) 2016-08-10
JP6271756B2 (ja) 2018-01-31
US20160300586A1 (en) 2016-10-13
EP3078023A1 (en) 2016-10-12

Similar Documents

Publication Publication Date Title
CN105849800B (zh) 位速率估值确定方法、位速率估算器、多路复用设备、位流提供方法和编码系统
JP5410566B2 (ja) マルチプロセッサアーキテクチュア並びにピクチュアベースの先読みウィンドウを具備したデジタルビデオエンコーダのためのパラレルレートコントロール
TWI530164B (zh) 終端機器件、用於一視訊編碼器之記憶體管理方法及視訊編碼方法
EP2364551B1 (en) Multiplexed video streaming
US9313488B2 (en) Hypothetical reference decoder
CN110267100B (zh) Flv视频的码率切换方法、装置、电子设备及存储介质
US6845129B2 (en) Controlling a video-buffer-verifier buffer using an MPEG-like encoder
CN101931775A (zh) 一种录像方法及装置
JP5064305B2 (ja) ビットレート変換装置及び変換方法
US8848785B2 (en) Compact cumulative bit curves
US9571871B2 (en) Method for delivering video content encoded at one or more quality levels over a data network
CN111405370B (zh) 一种视频回放方法和装置
US20150163484A1 (en) Variable bitrate encoding for multiple video streams
TWI568238B (zh) 用於在一視訊編碼器產生旁側資訊以區分封包資料之方法及系統
US8619864B2 (en) Transcoding/encoding with code amount adjustment and stuffing bits
JPWO2008053557A1 (ja) 動画像再符号化装置、動画像再符号化方法、動画像再符号化プログラムおよび動画像再符号化プログラムを格納した記録媒体
JP4254784B2 (ja) 動画像符号化装置、方法及びプログラム
GB2545447B (en) A method to encode video with close multiple scene changes
US20090185620A1 (en) Video encoding apparatus and method for the same
KR101732995B1 (ko) 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
JP2002014696A (ja) 制御装置及び制御方法
JP2010233051A (ja) マルチメディア送信装置

Legal Events

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