CN104052999A - 平行编码系统中执行速率控制的方法及平行编码系统 - Google Patents
平行编码系统中执行速率控制的方法及平行编码系统 Download PDFInfo
- Publication number
- CN104052999A CN104052999A CN201410089741.1A CN201410089741A CN104052999A CN 104052999 A CN104052999 A CN 104052999A CN 201410089741 A CN201410089741 A CN 201410089741A CN 104052999 A CN104052999 A CN 104052999A
- Authority
- CN
- China
- Prior art keywords
- parallel
- piecemeal
- encoders
- quantization parameter
- video sequence
- 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
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种包含多个平行编码器的平行编码系统中执行速率控制的方法及平行编码系统。此方法可包含基于多个平行编码器的平行程度决定多个平行编码器中的一个的量化参数。此方法还可包含提供量化参数至多个平行编码器中的一个以编码视频序列的分块,以基于量化参数产生编码块。
Description
相关申请案的交互参照
本申请案主张2013年3月14日及2014年2月5日于美国专利商标局分别提出的美国专利临时申请案第61/785,270号及美国专利申请案第14/173,259号的优先权权益,其所公开的内容在此全部纳入以作为参考。
技术领域
本发明涉及一种平行编码系统中执行速率控制的方法及平行编码系统。
背景技术
除非文中另有指出,在此章节中的近似描述非本发明权利要求书的先前技术,且并非承认包含在此章节的先前技术中。
为了在有限频带传输频道传送数码视频帧(video frames),或者使用数码存储设备存储及读取视频帧,当要最小化数据质量(quality)的损失时,会采用压缩技术以降低数据带宽。举例而言,采用MPEG-2压缩技术的编码器接受原始视频帧的输入序列而后输出已编码的视频帧的序列。编码器的控制参数,传统上称为量化参数(Quantization Parameter,QP),其控制编码后的输出质量,即人眼所观看到输出的好坏。
通过熟知的MPEG-2,较低数值的量化参数QP产生较高质量的输出。此外,量化参数QP亦会影响输出的大小,所谓输出的大小为编码输出帧所需要的位数量。然而,由于输出帧的大小为量化参数QP及输入帧的复杂度(complexity)的函数,因此仅为间接的影响。通常而言,越复杂的视频序列要求越多的位,越高品质要求越多的位。
虽然编码器通过量化参数QP而参数化,实际上很多应用不仅需施加限制在输出质量上,亦得施加限制在输出位的数量上。举例而言,若已编码的视频帧经由每秒可传送N位的网络传送,编码器必须最多每秒产生N位。由于输出位的数量亦会被输入序列的复杂度影响,量化参数QP及输出大小之间的关系为间接的。因此,设定可达成所需的输出速率的量化参数QP通常是困难的。
发明内容
有鉴于上述熟知的问题,本发明的目的就是提供一种包含多个平行编码器的平行编码系统中执行速率控制的方法,包含:对多个平行编码器中的一个,基于有关多个平行编码器的平行程度决定量化参数,其中平行程度为对应多个平行编码器平行处理的视频序列的分块数量;以及提供量化参数至多个平行编码器中的一个,基于量化参数对视频序列的分块进行编码以产生编码块。
前述的分块数量为对应多个平行编码器能够平行处理的视频序列的分块最大数量。
前述的决定量化参数还包含:通过多个平行编码器决定已编码开始但尚未完成的未完成分块数量;以及根据未完成分块数量增加平行程度,其中未完成分块数量最大为多个平行编码器曾经平行处理的分块最大数量。
前述的决定量化参数还包含:通过平行程度分割增益参数以决定量化参数,且将分割的结果与错误参数相乘。
此外,前述的方法还包含:基于编码块的所需大小及实际大小,在编码视频序列的分块后更新错误参数。
本发明还提出一种平行编码系统,包含:多个平行编码器,用来编码视频序列的分块;以及多个速率控制器,分别用来通过下列方法执行多个平行编码器的速率控制:对多个平行编码器中的一个,基于有关多个平行编码器的平行程度决定量化参数,其中平行程度为对应多个平行编码器平行处理的视频序列的分块数量;以及提供量化参数至多个平行编码器中的一个,基于量化参数对视频序列的分块进行编码以产生编码块。
前述的分块数量为对应多个平行编码器能够平行处理的视频序列的分块最大数量。
前述的多个速率控制器系通过下列方法决定量化参数:通过多个平行编码器决定已编码开始但尚未完成的未完成分块数量;以及根据未完成分块数量增加平行程度,其中未完成分块数量最大为多个平行编码器曾经平行处理的分块最大数量。
前述的多个速率控制器为通过平行程度分割增益参数以决定量化参数,且将分割的结果与错误参数相乘。
前述的多个速率控制器还用来基于编码块的所需大小及实际大小,在编码视频序列的分块后更新错误参数。
前述的多个平行编码器使用下列视频编码标准中的至少一个:MPEG-1、MPEG-2、MPEG-4及H.264/AVC。
前述的平行编码系统提供云端编码服务至多个远程使用者。
为使贵审查员对本发明的技术特征及所达到的技术效果有更进一步的了解与认识,谨佐以较佳的实施例及配合详细的说明如后。
附图说明
图1为根据本发明的至少一些实施例,在包含多个平行编码器的平行编码系统中执行速率控制的示例性过程的流程图;
图2为根据本发明的至少一些实施例,执行速率控制的示例性平行编码系统的示意图;
图3为根据本发明的至少一些实施例,包含图2的速率控制器及编码器的处理单元的详细实施例的示意图;
图4为根据本发明的至少一些实施例,使用图3的速率控制器及编码器执行速率控制的示例性过程的流程图;以及
图5为根据本发明的至少一些实施例,用来在包含多个平行编码器的平行编码系统中执行速率控制的示例性系统。
具体实施方式
在下文的详细描述中,为参照形成下文的一部份的附图。在附图中,相同符号通常表示相同元件,除非文中另有指出。描述于实施方式中的示例性实施例、附图及权利要求书非用来限制性其含义。可适用于其他实施例,且可进行其他变更,而不背离本发明的精神与范畴。将被容易地理解的是,本发明通常在文中所描述的实施例及所示的附图可以不同的型态而广泛地安排、置换、结合及设计,且皆明确地在文中公开。
本发明的全文中,编码器的示例性控制参数,如量化参数(QuantizationParameter,QP),可用来控制编码的输出质量(quality)。术语“速率控制”为表示为维持所欲的传输速率而产生的输出位所对应的量化参数QP的数值。术语“平行编码系统”表示为能够在实质上相同时间使用多个平行编码器执行多个编码操作的系统。
图1为根据本发明的至少一些实施例,在包含多个平行编码器的平行编码系统中执行速率控制的示例性过程的流程图;过程100可包含通过一个或多个结构所示的一个或多个操作、步骤或行为,如步骤110及120。不同的步骤可基于所需的实施而结合成更少的步骤、分割成额外的步骤及/或消除。
在步骤110中,量化参数QP的决定基于有关多个平行编码器的平行程度而得用于多个平行编码器中的一个。平行程度,在全文中亦表示为P,对应于平行处理的多个平行编码器的视频序列的分块(chunks)的数量。在某些实施例中,P可对应于能够平行处理的多个平行编码器视频序列的分块的最大数量。P亦可对应于曾经平行处理的多个平行编码器的视频序列的分块的最大数量。
在步骤120中,量化参数QP被提供至多个平行编码器中的一个,以基于此量化参数QP对视频序列的一个分块编码。
根据本发明的至少一些实施例,基于平行程度所决定的量化参数QP可改善在平行编码系统中的速率控制的稳定度。特别是,由于编码器为独立操作,平行程度可用于速率控制以避免或降低量化参数QP由于平行编码器的大量有效增益而未随时间收敛的可能性。
此外,图1的示例性过程可降低编码时间及增加输出速率,通过促进即时视频编码。图1的示例性过程可用于任何适合的视频应用,如视频通信、安全性、监控及娱乐,且甚至特别有利于更快速的速率控制及编码(如高画质电视(HDTV)、即时视频流串、视频点播(VOD)等)的应用。在其他实施例中,平行编码系统可提供云端编码至多个远程使用者等。
图2为根据本发明的至少一些实施例,可执行图1的速率控制的示例性平行编码系统200的示意图。平行编码系统200包含多个可同时操作的处理单元210。各个处理单元210包含相互影响的速率控制器220及编码器240,以将视频序列206的分块202编码成编码块(encoded chunks)204。
处理单元210,可使用软件、硬件或两者的组合而实施。处理单元210的数量(如N)可取决于应用及基础系统硬件等,为任何适合的数量。在各个处理单元210中,速率控制器220决定编码器240的量化参数QP222的数值,以将分块202编码成编码块204。举例而言,速率控制器1决定编码器1的量化参数QP1,以将分块基于量化参数QP1编码成编码块1等。
本发明的全文中,术语“分块(chunk)”,如分块202,通常可表示视频序列的一部份,如视频序列206的一部份。举例而言,视频序列206包含多个帧,其更可分割成大区块(macroblocks)(通常为16×16像素,但不限于此大小)及包含任意数量大区块的切片(slices)等。实际上,分块202可为任何适合的大小,大如整个视频帧、小如大区块或任何介于二者之间的大小。当然,分块202可大于整个视频帧或小于大区块。
虽不同处理单元210的分块202以相同大小绘示,其可为不同的大小。举例而言,使用MPEG-2,分块1可为大区块,且分块N可为切片或切片的群组等。如此一来,分块的大小可视为速率控制的单元。分块202可分配至使用任何适合的分配运算方法的不同的处理单元210。
根据本发明的一些实施例,速率控制器220为基于平行编码器240的平行程度来决定量化参数QP222,在图2中平行程度以“P”表示。举例而言,平行程度P224可基于通过平行编码器240平行编码的分块的数量而决定。在平行编码系统220中的量化参数222及平行程度P之间的相互影响涉及速率控制器220及编码器240之间的控制回路的稳定度。
更详细地,在接下来的编码系统中(假设仅具有一个处理单元210的系统,即N=1),分块202为接续地编码。举例而言,当使用MPEG-2编码第i个分块时,速率控制器220设定量化参数QP[i]的数值如下所示:
QP[i]=GAIN*ERROR[i] (1)
在公式(1)中,GAIN为适当的(通常为正值)常数且在量化参数为QP[i]的质量下执行编码器。编码器240产生大小为ACTUAL[i]位226的编码块204时,不仅取决于QP[i],亦取决于视频序列的复杂度。在编码第i个分块之后,速率控制器220便基于ACTUAL[i]226及所需的第i个分块DESIRED[i]228的大小来更新错误参数ERROR[i]。
ERROR[i+1]=ERROR[i]+(ACTUAL[i]-DESIRED[i]) (2)
ERROR[i+1]用来计算接下来的分块i+1的QP[i+1]。若编码器240有系统地输出相较于所需的更多的位(即ACTUAL[i]>DESIRED[i]),ERROR[i+1]便随着时间而增长。如此会增加接下来的分块202的量化参数QP222的数值,造成这些分块202使用较少位以完成所需的输出速率。
相较之下,对于图2的N>1编码器的平行编码系统200,分块202(如分块1)与其他分块202(如分块N)同时编码,且不使用其他处理单元210(如处理单元N)的反馈。举例而言,分块1的量化参数QP1不基于反馈ACTUALN而决定。此举在数学上约等同于使用较接下来的步骤中大P倍的GAIN的数值,其中P为被预定来同时执行的分块的最大数量。换言之,若公式(1)中的QP[i]=GAIN*ERROR[i]的计算在各个处理单元210重复执行,系统200的有效增益约为GAIN*P。如此一来,虽GAIN可为接下来的系统的稳定数值,然而平行系统200则并非如此。
此外,下述的实施例为示意GAIN的选择的重要性。以简化及示例为目的,考虑N=1的例子。假设量化参数QP的范围为[0…10],编码器输出(10-QP)位/每分块,ERROR[0]初始为0,GAIN=2且DESIRED=5位/分块。表1显示使用公式(1)及(2)所计算的ERROR[i]、QP[i]、ACTUAL[i]于i=0,…,5的数值:
表1:由于不稳定度而造成量化参数QP的波动
i | ERROR[i] | QP[i]=GAIN*ERROR[i] | ACTUAL[i]=10-QP |
0 | 0 | 0 | 10 |
1 | 5 | 10 | 0 |
2 | 0 | 0 | 10 |
3 | 5 | 10 | 0 |
4 | 0 | 0 | 10 |
5 | 5 | 10 | 0 |
上述循环为重复极值在0及10之间波动的量化参数QP,而从未收敛至最佳(optimal)数值如QP=5。在此实施例中,结果GAIN<2的数值最终收敛至量化参数QP的稳定数值,而大于GAIN≥2则从未收敛。如此一来,若GAIN变得太大,速率控制器220及编码器240之间的控制回路则变得不稳定。
为改善图2的平行编码系统200的稳定度,速率控制器220根据下列公式(3)以基于平行程度P224而决定量化参数QP222:
QP=(GAIN/P)*ERROR (3)
在某些实施例中且如上所述,平行程度P可为平行编码器240能够平行处理的分块的最大数量。在图2所示的实施例中,平行程度P可高达N,即编码器240的数量。如前所述,若GAIN太大,则控制回路变得不稳定。无论P为何,得通过平行程度P来分割GAIN而达成稳定控制回路的功效。
图3为根据本发明的至少一些实施例,包含速率控制器220及编码器240的处理单元210的详细实施例的示意图。在图2及图3中,虽速率控制器220及编码器240以分别的方块显示,其应被理解的是,速率控制器220亦可为编码器240的一部份。
在图3的实施例中,速率控制器220还包含分别在分块编码执行之前及之后的BEGIN_CHUNK()310及END_CHUNK()320。与图2相同,速率控制器220基于编码器240的平行程度P而决定量化参数QP222(如QPn),以将分块202编码成编码块204。
编码器240可使用任何适合的视频编码标准,如MPEG-1、MPEG-2、MPEG-4、H.264/AVC(先进视频编码(Advanced Video Coding))等。举例而言,MPEG-2视频编码通常包含下列元件:动作估计单元330、动作补偿单元332、转换单元334、量化单元336、反向量化单元338、反向转换单元340、帧存储器单元342、可变长度编码器单元344及输出缓冲单元346。元件330至346可使用任何适合的软件、硬件或两者的组合而实施。
一般而言,视频序列包含相当大量冗余量(redundancies)在帧内部之间,如时间及空间冗余量。帧压缩(intra-frame compression)技术可通过转换编码(transform coding)降低单一帧的空间冗余量,并可通过编码预测帧及目前帧之间的差异以降低空间冗余量。在图3的实施例中,动作估计单元330根据先前帧以搜寻最佳动作向量,动作补偿单元332用来降低时间冗余量。转换单元334执行转换编码(如离散余弦转换(discrete cosine transform))以编码不同帧的动作补偿预测,以降低空间冗余量。
转换单元334,产生的转换系数通过量化单元336以量化,其结果通过可变长度编码器单元344来编码。编码块204在传输或存储前存储在输出缓冲单元346中。反向量化单元338及反向转换单元340(如反向离散余弦转换(inverse discrete cosine transform))用来重建参照资料以作为后续使用。动作补偿单元330亦可处理参照资料以使用在动作估计单元330中。
在图3的实施例中,当编码器240为了编码分块202而将量化参数QP222的数值发至量化单元336时,编码器240呼叫BEGIN_CHUNK()310以回传量化参数QP222的数值。在编码分块202之后,编码器240呼叫END_CHUNK(ACTUAL)320,其中ACTUAL为用来编码分块202的位实际数量。BEGIN_CHUNK()310及END_CHUNK()320可通过多个分块202的不同的平行编码器240以任何顺序而同时被呼叫,但END_CHUNK()必须在相同分块202的对应的BEGIN_CHUNK()之后被呼叫。
BEGIN_CHUNK()310及END_CHUNK()320可使用任何适合的软件、硬件或两者的组合而实施。举例而言,BEGIN_CHUNK()310及END_CHUNK()320为可被编码器240执行的功能函数。表2为根据本发明的至少一些实施例,显示BEGIN_CHUNK()310及END_CHUNK()320的示例性虚拟码(pseudo-code)。变数OUTSTANDING及P(表2,第3行及第6行)在平行速率控制器220及编码器240之间被引用。
表2:BEGIN_CHUNK()310及END_CHUNK()320之虚拟码
图4为根据本发明的至少一些实施例,使用图2及图3的速率控制器220及编码器240执行速率控制的示例性过程400的流程图。过程400可包含通过一个或多个方块所示的一个或多个操作、步骤或动作,如通过编码器240执行的步骤410至434,及通过速率控制器220执行的步骤412至418及步骤432至434。虽步骤以不同顺序描述,这些步骤亦可同时执行,及/或以文中所述的不同顺序执行。此外,不同的步骤可基于所需的实施而结合成更少的步骤、分割成额外的步骤及/或消除。步骤410至434可针对每一个由编码器240编码的分块202而重复执行。
在图4的步骤410中,平行编码系统200的编码器240(如编码器n)引发(invoke)BEGIN_CHUNK(),以获得量化参数QP(如QPn)的数值。
在图4的步骤412至418中,速率控制器220(如速率控制器n)执行BEGIN_CHUNK()。在步骤412中(涉及表2的第1至3行及第21行),计数器OUTSTANDING表示编码已经开始但尚未完成的分块的数量,在每次BEGIN_CHUNK()被呼叫时增加(increased)。在步骤414中(涉及表2的第4至6行及第22行),平行程度P初始值为1,且根据OUTSTANDING而增加。举例而言,若有5个平行编码器240,速率控制器220根据OUTSTANDING增加平行程度P的数值,最多增加至最大值5。在步骤416及418中(涉及表2的第23至24行),速率控制器220使用公式(3)决定量化参数QP,并且提供结果至编码器240。
在图4的步骤420中,编码器240(如编码器n)基于通过速率控制器220(如速率控制器n)提供的量化参数QP(如QPn)来编码分块202以产生编码块204。举例而言,如参照图3的解释,可使用动作估计单元330、动作补偿单元332、转换单元334、量化单元336、反向量化单元338、反向转换单元340、帧存储器单元342、可变长度编码器单元344及输出缓冲单元346。
在图4的步骤430中,编码器240(如编码器n)在产生编码块204之后引发END_CHUNK(ACTUAL)。
在步骤432及434中,速率控制器220(如速率控制器n)执行END_CHUNK(ACTUAL)。在步骤432中(涉及表2的第33行),速率控制器220(如速率控制器n)基于编码块204的ACTUAL之大小(size)及DESIRED的大小(size)更新ERROR。在步骤434中(涉及表2之第36行),速率控制器220(如速率控制器n)减少(decrease)计数器OUTSTANDING以指出目前分块的编码处理的完成。如436所指出,由于OUTSTANDING为分享于多个速率控制器220之中的参数(涉及表2的第3行),当下次被引发时,BEGIN_CHUNK()将使用OUTSTANDING的最新数值。
必须说明的是,任何适合的平行计算技术可用来在各个处理单元210的速率控制器220中实施BEGIN_CHUNK()及END_CHUNK()。举例而言,处理单元210可作为称之为线程(thread)的平行程序来实施。再者,由于BEGIN_CHUNK()及END_CHUNK()可通过多个编码器240而同时呼叫,闩锁L用来提供互斥锁(见表2的第18、25、31、37行)。一般而言,闩锁为程序化语言结构,其允许一个编码器240控制变数且预防其他编码器240读取或写入。举例而言,若一个编码器240锁住变数OUTSTANDING及P,没有其他编码器240可对其更新,以避免资料错误。
上述实施例可通过硬件、软件或固件或其组合而实施。图5为根据本发明的至少一些实施例,用来在操作系统中执行网络内部状态监控(networkintrospection)的示例性系统。示例性系统500可包含处理器510、存储器520、网络介面装置540及在这些所示的元件及其他元件之中促进连通的总线530。
处理器510执行参照图1至图4在文中所述的过程。虽显示一个处理器510,然而多个处理器510亦可用来实施参照图2及图3所解释的平行编码系统200。存储器520可存储参照图1至图4所述的平行编码系统200中执行速率控制所需的任何信息,如平行编码器240的平行程度(P)及在表2中的其他参数等。存储器520还可存储可通过处理器510执行的机器可读取指令524,以使处理器执行参照图1至图4所述的过程。
文中所述的方法、过程及单元可通过硬件(包含硬件逻辑电路)、软件或固件或其组合而实施。术语“处理器”广泛地解释为包含处理单元ASIC、逻辑单元或可程序化门极阵列等。
上述所介绍的技术可在特殊目的固线式电路(special-purpose hardwiredcircuitry)、与可程序化电路连接的软件及/或固件或其组合中实施。特殊目的固线式电路可例如为一个或多个特定应用集成电路(application-specificintegrated circuits,ASICs)、可程序化逻辑装置(programmable logic devices,PLDs)、可程序化逻辑门阵列(field-programmable gate arrays,FPGAs)及其他的形式。
前文的详细描述已提出经由使用结构图、流程图及/或实施例的装置及/或过程的各种不同的实施例。在此包含一个或多个功能及/或操作的结构图、流程图及/或实施例的范围中,将被本领域技术人员理解的是,在此结构图、流程图或实施例中的各个功能及/或操作可通过广泛地硬件、软件、固件或任何其实际上的组合而独立地及/或合并地实施。
本领域技术人员将理解的是,文中所公开的实施例的整体或部分的某些方面,可在集成电路如在一个或多个电脑上执行的一个或多个计算机程序(如在一个或多个电脑系统上执行的一个或多个程序)、固件或任何其实际上的组合而等同实施,且电路的设计及/或软件及/或固件的代码的编写包含在本发明所公开的范围中。
实施文中所述的技术的软件及/或固件可存储在非暂态电脑可读取存储媒介,且可通过一个或多个通用或特殊目的可程序化微处理器而执行。文中所使用的术语“电脑可读取存储媒介”包含任何以机器(如电脑、网络装置、个人数码助理(PDA)、移动装置、制造工具、一个或多个处理器所构成的任何装置)可存取的形式提供(即存储即/或传输)数据的任何机构。举例而言,电脑可读取存储媒介包含可记录/不可记录媒介(如只读内存read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟存储媒介、光学存储媒介、闪速存储器装置等)。
附图仅为实施例的说明,其中附图中所示的单元或程序并非实施本发明的必要基础。本领域技术人员将理解的是,实施例中的装置的单元可安排在文中所述的实施例的装置中,或者可选择性地位于不同于实施例的一个或多个装置中。所述的实施例中的单元可结合成一个组件或更可分割成多个次单元。
本领域技术人员应当理解,可由上述实施例进行各种变动及/或修改,而不背离本发明的广泛的范畴。因此,本发明的实施例考虑到所说明的所有方面而不为其所限。
Claims (12)
1.一种包含多个平行编码器的平行编码系统中执行速率控制的方法,其特征在于,包含:
对多个平行编码器中的一个,基于有关所述多个平行编码器的平行程度决定量化参数,其中所述平行程度为对应所述多个平行编码器平行处理的视频序列的分块数量;以及
提供所述量化参数至所述多个平行编码器中的一个,基于所述量化参数对所述视频序列的分块进行编码以产生编码块。
2.如权利要求1所述的方法,其特征在于,所述分块数量为对应所述多个平行编码器能够平行处理的所述视频序列的分块最大数量。
3.如权利要求2所述的方法,其特征在于,决定所述量化参数还包含:
通过所述多个平行编码器决定已编码开始但尚未完成的未完成分块数量;以及
根据所述未完成分块数量增加所述平行程度,其中所述未完成分块数量最大为所述多个平行编码器曾经平行处理的所述分块最大数量。
4.如权利要求2所述的方法,其特征在于,决定所述量化参数还包含:
通过所述平行程度分割增益参数以决定所述量化参数,且将分割的结果与错误参数相乘。
5.如权利要求4所述的方法,其特征在于,所述方法还包含:
基于所述编码块的所需大小及实际大小,在编码所述视频序列的所述分块后更新所述错误参数。
6.一种平行编码系统,其特征在于,包含:
多个平行编码器,其用来编码视频序列的分块;以及
多个速率控制器,其分别用来通过下列方法执行所述多个平行编码器的速率控制:
对所述多个平行编码器中的一个,基于有关所述多个平行编码器的平行程度决定量化参数,其中所述平行程度为对应所述多个平行编码器平行处理的视频序列的分块数量;以及
提供所述量化参数至所述多个平行编码器中的一个,基于所述量化参数对所述视频序列的分块进行编码以产生编码块。
7.如权利要求6所述的平行编码系统,其特征在于,所述分块数量为对应所述多个平行编码器能够平行处理的所述视频序列的分块最大数量。
8.如权利要求7所述的平行编码系统,其特征在于,各所述多个速率控制器通过下列方法决定所述量化参数:
通过所述多个平行编码器决定已编码开始但尚未完成的未完成分块数量;以及
根据所述未完成分块数量增加所述平行程度,其中所述未完成分块数量最大为所述多个平行编码器曾经平行处理的所述分块最大数量。
9.如权利要求7所述的平行编码系统,其特征在于,各所述多个速率控制器通过所述平行程度分割增益参数以决定所述量化参数,且将分割的结果与错误参数相乘。
10.如权利要求9所述的平行编码系统,其特征在于,各所述多个速率控制器还用来基于所述编码块的所需大小及实际大小,在编码所述视频序列的所述分块后更新所述错误参数。
11.如权利要求6所述的平行编码系统,其特征在于,所述多个平行编码器使用下列视频编码标准中的至少一个:MPEG-1、MPEG-2、MPEG-4及H.264/AVC。
12.如权利要求6所述的平行编码系统,其特征在于,所述平行编码系统提供云端编码服务至多个远程使用者。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361785270P | 2013-03-14 | 2013-03-14 | |
US61/785,270 | 2013-03-14 | ||
US14/173,259 | 2014-02-05 | ||
US14/173,259 US9374588B2 (en) | 2013-03-14 | 2014-02-05 | Rate control method and system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052999A true CN104052999A (zh) | 2014-09-17 |
CN104052999B CN104052999B (zh) | 2017-09-05 |
Family
ID=51505313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410089741.1A Active CN104052999B (zh) | 2013-03-14 | 2014-03-12 | 平行编码系统中执行速率控制的方法及平行编码系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104052999B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021436A (zh) * | 2017-12-28 | 2018-05-11 | 辽宁科技大学 | 一种进程调度方法 |
CN111480344A (zh) * | 2017-12-13 | 2020-07-31 | 奈飞公司 | 用于优化编码任务的技术 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682204A (en) * | 1995-12-26 | 1997-10-28 | C Cube Microsystems, Inc. | Video encoder which uses intra-coding when an activity level of a current macro-block is smaller than a threshold level |
CN1209894A (zh) * | 1996-11-28 | 1999-03-03 | 汤姆森多媒体公司 | 用区域信息进行编码的方法 |
CN1913639A (zh) * | 2005-08-08 | 2007-02-14 | 三星电机株式会社 | 图像压缩装置和图像压缩方法 |
US20120281748A1 (en) * | 2011-05-02 | 2012-11-08 | Futurewei Technologies, Inc. | Rate Control for Cloud Transcoding |
-
2014
- 2014-03-12 CN CN201410089741.1A patent/CN104052999B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682204A (en) * | 1995-12-26 | 1997-10-28 | C Cube Microsystems, Inc. | Video encoder which uses intra-coding when an activity level of a current macro-block is smaller than a threshold level |
CN1209894A (zh) * | 1996-11-28 | 1999-03-03 | 汤姆森多媒体公司 | 用区域信息进行编码的方法 |
CN1913639A (zh) * | 2005-08-08 | 2007-02-14 | 三星电机株式会社 | 图像压缩装置和图像压缩方法 |
US20120281748A1 (en) * | 2011-05-02 | 2012-11-08 | Futurewei Technologies, Inc. | Rate Control for Cloud Transcoding |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111480344A (zh) * | 2017-12-13 | 2020-07-31 | 奈飞公司 | 用于优化编码任务的技术 |
CN111480344B (zh) * | 2017-12-13 | 2022-08-02 | 奈飞公司 | 用于优化编码任务的计算机实现的方法、存储介质及系统 |
US11539966B2 (en) | 2017-12-13 | 2022-12-27 | Netflix, Inc. | Techniques for optimizing encoding tasks |
CN108021436A (zh) * | 2017-12-28 | 2018-05-11 | 辽宁科技大学 | 一种进程调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104052999B (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9743088B2 (en) | Video encoder and video encoding method | |
CN101031086B (zh) | 视频信息编码方法及设备和视频信息解码方法及设备 | |
JP7101753B2 (ja) | ビデオコーディング方法、装置、電子機器及び記憶媒体 | |
US9854252B2 (en) | Method and apparatus of HEVC de-blocking filter | |
KR102611628B1 (ko) | 비디오 코딩 방법, 장치, 전자 기기 및 컴퓨터 판독 가능한 저장 매체 | |
CN103220510A (zh) | 在hevc中的采样自适应偏移中的灵活带偏移模式 | |
US20160301945A1 (en) | Image compression/decompression device | |
US20170041606A1 (en) | Video encoding device and video encoding method | |
US20200320274A1 (en) | Encoder, image processing system, unmanned aerial vehicle and encoding method | |
CN105187824A (zh) | 图像编码方法和装置以及图像解码方法和装置 | |
US11343501B2 (en) | Video transcoding method and device, and storage medium | |
US20110317762A1 (en) | Video encoder and packetizer with improved bandwidth utilization | |
US20240314361A1 (en) | Systems and methods for data partitioning in video encoding | |
CN104052999A (zh) | 平行编码系统中执行速率控制的方法及平行编码系统 | |
JP2022521167A (ja) | ビデオ符号化のための方法および装置 | |
US6097843A (en) | Compression encoding apparatus, encoding method, decoding apparatus, and decoding method | |
KR20130032807A (ko) | 동영상 부호화 장치 및 방법 | |
CN102340659A (zh) | 一种基于avs的并行的模式决策装置和方法 | |
TWI543587B (zh) | 速率控制方法及系統 | |
US9756344B2 (en) | Intra refresh method for video encoding and a video encoder for performing the same | |
US11871003B2 (en) | Systems and methods of rate control for multiple pass video encoding | |
US9549193B2 (en) | Video encoding method and video encoding device | |
CN104768021A (zh) | 一种超低时延的h.264编码方法及编码器 | |
US20230079859A1 (en) | Systems and methods for streaming extensions for video encoding | |
KR101145399B1 (ko) | 멀티-패스 인코딩 장치 및 방법 |
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 |