CN105027570B - 用来简化视频拼接的缓冲信息的语法和语义 - Google Patents
用来简化视频拼接的缓冲信息的语法和语义 Download PDFInfo
- Publication number
- CN105027570B CN105027570B CN201480012657.8A CN201480012657A CN105027570B CN 105027570 B CN105027570 B CN 105027570B CN 201480012657 A CN201480012657 A CN 201480012657A CN 105027570 B CN105027570 B CN 105027570B
- Authority
- CN
- China
- Prior art keywords
- value
- cpbrd
- picture
- sei message
- current image
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 88
- 238000003860 storage Methods 0.000 claims description 21
- 230000003139 buffering effect Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims 1
- 230000033001 locomotion Effects 0.000 description 35
- 238000005516 engineering process Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 20
- 238000001914 filtration Methods 0.000 description 16
- 238000013139 quantization Methods 0.000 description 15
- 238000013459 approach Methods 0.000 description 11
- 238000007689 inspection Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 230000000153 supplemental effect Effects 0.000 description 3
- 239000000969 carrier Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 240000001439 Opuntia Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23424—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44016—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- User Interface Of Digital Computer (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
编码图片缓冲区清除延迟(“CPBRD”)值的语法和语义中的创新会潜在地简化拼接操作。例如,视频编码器设置指示相对于解码顺序中的在前图片的标称编码图片缓冲区清除时间的增量值的当前图片的CPBRD值,无论在前图片是否具有缓冲周期SEI消息。编码器可以根据其中标志指示如何解释CPBRD值的单值法、根据其中另一个CPBRD值(具有不同的解释)也被使用信号通知的双值法、或者根据使用标志和Δ值的双值法,来使用信号通知CPBRD值。相应的视频解码器接收并解析用于当前图片的CPBRD值。拼接工具可以使用用于当前图片的CPBRD值进行简单的级联操作来拼接比特流。
Description
技术领域
本公开的实施例涉及视频拼接操作。
背景技术
工程师们采用压缩(也称为源编码)来降低数字视频的比特率。压缩通过将信息转换成较低的比特率形式,减少了存储和传输视频信息的成本。解压缩(也称为解码)是对来自压缩形式的原始信息版本的重构。“编解码器”是一种编码器/解码器系统。
在过去二十年,已通过了各种视频编解码标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准和MPEG-1(ISO/IEC 11172-2)、MPEG-4视讯(ISO/IEC 14496-2)和SMPTE 421M(VC-1)标准。最近,已经开发出HEVC标准(ITU-T H.265或ISO/IEC 23008-2)。视频编解码标准通常定义了经编码的视频比特流的语法选项,详细介绍了在编码和解码中使用特定功能时,比特流中的参数。在许多情况下,视频编解码标准还提供有关解码器应执行的以在解码中获得一致结果的解码操作的详细内容。除了编解码器标准,各种专用的编解码器格式定义了经编码的视频比特流的语法的其他选项,以及相应的解码操作。
一种经编码的视频比特流中的参数类型是编码图片缓冲区清除延迟(“CPBRD”)。一般情况下,用于给定图片的CPBRD值指定了要从解码器缓冲区清除与该图片相关联的编码数据的标称时间。在正确的时间清除用于图片的编码数据时,按照正常的运行模式,解码器缓冲区不会溢出(这可能会导致编码数据丢失)或下溢(这可能会导致“低频干扰(glitching)”或其他连续播放中断)。在低延迟模式中,在某些情况下允许出现下溢,但是在非低延迟模式(诸如通常用于广播)下,不允许缓冲区下溢。一种通常被称为假定参考解码器(HRD)或视频缓冲检验器(VBV)的缓冲模型使用CPBRD值和其他参数,诸如率值、缓冲区大小值和缓冲区充满度值或初始缓冲延迟值(开始播放之前),以验证可以在解码系统的缓冲资源内解码比特流,并帮助解码器确定用于操作其解码过程的时间和步骤。
在很多情景中,不同视频序列的比特流被拼接在一起。例如,这种拼接可用于在电视节目中插入一条广告或一系列广告,或者在不同的电视节目之间切换。为了调整CPBRD值以对拼接做出解释,使用信号通知CPBRD值的现有途径可能会导致在拼接期间操作繁琐而且可能很难进行。另一个问题是,虽然两个源流可能与HRD单独兼容,但是在拼接后,不能够保证由此产生的拼接流可与HRD兼容。
发明内容
总之,具体实施方式提出了简化拼接操作的编码图片缓冲区清除延迟(“CPBRD”)值的语法和/或语义中的创新。特别是,通过用于某些图片的CPBRD值的新的信号通知方式,该创新支持拼接操作,其中当用于一个视频序列的比特流或部分比特流被级联到用于另一个视频序列的另一个比特流或部分另一个比特流时,这种CPBRD值可以被简单地重复使用。
根据本文所描述的创新的一个方面,视频编码器或其他工具设置了用于视频序列的给定图片的CPBRD值。用于给定图片的CPBRD值指示相对于解码顺序中的在前图片的标称编码图片缓冲区(“CPB”)清除时间的增量值,无论该在前图片是否具有缓冲周期SEI(“BPSEI”)消息。编码器或其他工具然后用信号通知用于给定图片的CPBRD值。可以根据其中标志指示如何解释CPBRD值的单值法、根据其中另一个CPBRD值(具有不同的解释)也被使用信号通知的双值法、根据使用标志和Δ值的双值法、或者根据另一种途径,对CPBRD值进行信号通知。
根据本文所描述的创新的另一个方面,视频解码器或其他工具接收用于视频序列的给定图片的CPBRD值。用于给定图片的CPBRD值指示相对于解码顺序中的在前图片的标称CPB清除时间的增量值,无论该在前图片是否具有BP SEI消息。视频解码器或其他工具然后对用于给定图片的CPBRD值进行解析。可以根据其中标志指示如何解释CPBRD值的单值法、根据其中另一个CPBRD值(具有不同的解释)也被使用信号通知的双值法、根据使用标志和Δ值的双值法、或者根据另一种途径,对CPBRD值进行信号通知。
根据本文所描述的创新的另一个方面,拼接工具接收用于第一视频序列的第一比特流的至少一部分,并且还接收用于第二视频序列的第二比特流的至少一部分。用于第二视频序列的给定图片的CPBRD值指示相对于解码顺序中的在前图片的标称CPB清除时间的增量值,无论该在前图片是否具有BP SEI消息。拼接工具将第二视频序列的至少一部分拼接到第一视频序列的至少一部分。作为拼接的一部分,拼接工具从给定图片开始,将所有或部分第二视频序列级联到第一视频序列的至少一部分。可以根据其中标志指示如何解释CPBRD值的单值法、根据其中另一个CPBRD值(具有不同的解释)也被使用信号通知的双值法、根据使用标志和Δ值的双值法、或者根据另一种途径,对CPBRD值进行信号通知。
编码、解码或拼接可实施为方法的一部分、作为适于执行该方法的计算设备的一部分、或作为存储了计算机可执行指令的有形计算机可读媒体的一部分,以使计算设备执行该方法。
根据以下具体实施方式并参考附图,本发明的上述和其他目标、特征、和优点将变得更加清楚。
附图说明
图1是可以实施一些所描述的实施例的示例计算系统的图。
图2a和2b是可以实施一些所描述的实施例的示例网络环境的图。
图3是与其结合可以实施一些所描述的实施例的示例编码器系统的图。
图4是与其结合可以实施一些所描述的实施例的示例解码器系统的图。
图5是图示了与其结合可以实施一些所描述的实施例的示例视频编码器的图。
图6是图示了与其结合可以实施一些所描述的实施例的示例视频解码器的图。
图7是图示了根据现有CPBRD值调整法的拼接操作的图。
图8和9是图示了用于用信号通知CPBRD值的单值法的语法的表格。
图10是图示了拼接两个比特流后的缓冲区充满度的图表。
图11是图示了用于使用标志和Δ值来用信号通知CPBRD值的双值法的语法的表格。
图12是图示了用于在编码期间设置CPBRD值来简化视频拼接的一般性技术的流程图。
图13是图示了用于根据单值法在编码期间设置CPBRD值来简化视频拼接的示例技术的流程图。
图14是图示了用于在解码期间处理CPBRD值的一般性技术的流程图。
图15是图示了用于在解码期间根据单值法确定CPBRD值的示例技术的流程图。
图16是图示了用于拼接比特流的一般性技术的流程图。
图17是图示了用于根据使用标志和Δ值的双值法在编码期间设置CPBRD值来简化视频拼接的示例技术的流程图。
图18是图示了用于根据使用标志和Δ值的双值法在解码期间来确定CPBRD值的示例技术的流程图。
具体实施方式
具体实施方式提出了通过调整编码图片缓冲区清除延迟(CPBRD)值的语法和/或语义来增进拼接操作的支持的各种途径。在许多情况下,这些途径减少了现有途径的缺点。特别是,具体实施方式提出了用各种类型的HEVC标准或H.264/AVC标准的补充增强信息(SEI)消息通知的CPBRD值的语法和语义的创新。在各个示例中,对缓冲周期SEI(“BP SEI”)消息和/或图片定时SEI(“PT SEI”)消息的语法和/或预计进行调整,以便进行拼接操作。
尽管本文所描述的操作在某些地方描述为由编码器(例如,视频编码器)、解码器(例如,视频解码器)或拼接工具(例如,视频拼接工具)执行,但是在许多情况下,该操作可以替代地由另一种类型的媒体处理工具执行。
参考针对HEVC标准的语法元素和操作,对本文所描述的一些创新进行阐述。例如,参考了HEVC标准的草案版本JCTVC-K1003——“高效视频编码(HEVC)文本规范草案9”,(JCTVC-K1003_dl3,2012年10月10日至19日上海,第11次会议)。本文所描述的创新也可针对其他标准或格式实施,例如,H.264/AVC标准。
更一般地,对本文所描述的示例的各种替代是可行的。例如,通过改变所描述的方法行为的顺序,通过拆分、重复或省略某些方法行为等,可以更改本文所描述的一些方法。所公开的技术的各个方面可以组合使用或单独使用。不同实施例使用一个或多个所描述的创新。本文所描述的一些创新解决了一个或多个背景技术中指出的问题。通常情况下,给定技术/工具不会解决所有这些问题。
I.示例计算系统
图1图示了可以实施几个所描述的创新的适当的计算系统(100)的一般性示例。计算系统(100)并不意味着对使用范围或功能暗示任何限制,因为创新可在多种通用或专用计算系统中实施。
参照图1,计算系统(100)包括一个或多个处理单元(110,115)和内存(120,125)。处理单元(110,115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”),特定于应用的集成电路(“ASIC”)中的处理器或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令来提高处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协同处理单元(115)。有形内存(120,125)可以是(多个)处理单元可访问的易失性存储器(例如,寄存器,缓存器,RAM),非易失性存储器(例如,ROM、EEPROM、闪存等),或者二者的一些组合。内存(120,125)以适于(多个)处理单元执行的计算机可执行指令的形式,存储实施一个或多个创新的软件(180),以使用用于简化视频拼接的CPBRD值的语法和语义进行视频的编码、解码和/或拼接。
计算系统可具有额外特征。例如,计算系统(100)包括存储器(140)、一个或多个输入设备(150)、一个或多个输出设备(160)、和一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(图中未示出)将计算系统(100)的组件互相连接。通常,操作系统软件(图中未示出)为在计算系统(100)中执行的其他软件提供操作环境,并协调计算系统(100)的组件的活动。
有形存储器(140)可以是可移动的或不可移动的,并包括磁盘、磁带或盒式磁带、CD-ROM、DVD、或者能够用来存储信息并能够在计算系统(100)内被访问的任何其他媒体。存储器(140)存储实施一个或多个创新的软件(180),以使用用于简化视频拼接的CPBRD值的语法和语义进行视频的编码、解码和/或拼接。
(多个)输入设备(150)可以是诸如键盘、鼠标、笔、或轨迹球之类的触摸输入设备,语音输入设备,扫描设备,或向计算系统(100)提供输入的其他设备。对于视频编码,(多个)输入设备(150)可以是摄像机、视频卡、电视调谐卡、或接收模拟或数字形式的视频输入的类似设备,或者将视频输入读入计算系统(100)的CD-ROM或CD-RW。(多个)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机、或提供来自计算系统(100)的输出的其他设备。
(多个)通信连接(170)使得能够通过通信媒体实现到另一计算实体的通信。通信媒体在经调制的数据信号中传递诸如计算机可执行指令、音频或视频输入或输出、或其它数据之类的信息。经调制的数据信号是使得一个或多个其特性以在信号中对信息进行编码的方式设置或改变的信号。举例来说,而非限制,通信媒体能够使用电力载体、光学载体、射频载体或其它载体。
可以在计算机可读媒体的一般情景中对创新进行描述。计算机可读媒体是可以在计算环境内访问的任何可用的有形媒体。举例来说,而非限制,对于计算系统(100),计算机可读媒体包括内存(120,125),存储器(140),以及任何上述的组合。
可以在计算机可执行指令(诸如包括在程序模块中的指令,正在计算系统中在目标真实或虚拟处理器上执行的指令)的一般情景中对创新进行描述。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或实现特定的抽象数据类型。程序模块的功能可以根据需要在各种实施例中在程序模块之间被组合或拆分。用于程序模块的计算机可执行指令可以在本地或分布式计算系统内执行。
术语“系统”和“设备”可在本文互换使用。除非上下文清楚地指出,否则,术语均不暗示对计算系统或计算设备的类型的任何限制。一般情况下,计算系统或计算设备可以是本地的或分布式的,并且可以包括特殊用途硬件和/或通用硬件与实施本文所描述的功能的软件的任何组合。
所公开的方法也可以使用配置成执行任何所公开的方法的专用计算硬件来实现。例如,所公开的方法能够通过特别设计或配置用于实现任何所公开的方法的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的特定于应用的集成电路(“ASIC”)、图形处理单元(“GPU”)、或诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实施。
为了便于介绍,具体实施方式使用了像“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高层抽象,不应与由人类执行的动作相混淆。对应于这些术语的实际的计算机操作根据实施方式的不同而不同。
II.示例网络环境。
图2a和2b示出了示例网络环境(201,202),其包括视频编码器(220)和视频解码器(270)。编码器(220)和解码器(270)采用适当的通信协议在网络(250)上连接。网络(250)可以包括因特网或其他计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括进行双向通信的编码器(220)和解码器(270)。给定编码器(220)可以产生符合SMPTE 421M标准、ISO/IEC 14496-10标准(也称为H.264或AVC)、HEVC标准(也称为H.265)、其他标准或专有格式的输出,并且相应的解码器(270)接收来自编码器(220)的编码数据。双向通信可以是视频会议、视频电话呼叫、或其他两方或多方通信场景的一部分。虽然图2a中的网络环境(201)包括两个实时通信工具(210),网络环境(201)相反可以包括三个或更多参与多方通信的实时通信工具(210)。
实时通信工具(210)通过编码器(220)管理编码。图3示出了可以包括在实时通信工具(210)中的示例编码器系统(300)。另选地,实时通信工具(210)使用另一种编码器系统。实时通讯工具(210)还通过解码器(270)管理解码。图4示出了可以包括在实时通信工具(210)中的示例解码器系统(400)。另选地,实时通信工具(210)使用另一种解码器系统。
在图2b所示的网络环境(202)中,编码工具(212)包括编码器(220),该编码器(220)可以对视频进行编码以递送到包括解码器(270)在内的多个播放工具(214)。可以提供单向通信用于视频监视系统、网络摄像机监视系统、远程桌面会议演示,或视频被编码并从一个位置发送到一个或多个其他位置的其他场景。虽然图2b中网络环境(201)包括两个播放工具(210),但是,网络环境(201)可以包括更多或更少的播放工具(214)。一般情况下,播放工具(214)与编码工具(212)进行通信,以确定播放工具(214)要接收的视频流。播放工具(214)接收流,缓冲所接收的经编码的数据一段适当的时间,并开始解码和播放。
图3示出了可以包括在解码工具(212)中的示例编码器系统(300)。另选地,编码工具(212)使用另一个编码器系统。编码工具(212)还可以包括服务器侧控制器逻辑,以用于管理和一个或多个播放工具(214)的连接。图4示出了可以包括在播放工具(210)中的示例解码器系统(400)。另选地,播放工具(212)使用另一个解码器系统。播放工具(214)还可以包括客户端侧控制器逻辑,以用于管理与编码工具(212)的连接。
图2a所示的网络环境(201)可以包括具有多个编码器的多个RTC工具。图2b所示的网络环境(202)可以包括具有多个编码器的多个编码工具。这种编码器可以产生由拼接工具拼接成单一比特流的多个输出比特流。或者,单一编码器可以产生多个由拼接工具拼接成单一比特流的多个比特流。
III.示例编码器系统。
图3是与其结合可以实施一些描述的实施例的示例编码器系统(300)的框图。编码器系统(300)可以是能够在多种编码模式(诸如用于实时通信的低延迟编码模式、转码模式、以及用于产生用于播放来自文件或流的媒体的较高延迟编码模式)的任一种中操作的通用编码工具,或者可以是适于一个这样的编码模式的特殊用途的编码工具。编码器系统(300)可以作为操作系统模块、作为应用程序库的一部分、或作为独立的应用程序而被实施。总之,编码器系统(300)从视频源(310)接收一系列源视频帧(311)并生成编码数据作为到通道(390)的输出。输出到通道的编码数据可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。
视频源(310)可以是摄像机、调谐卡、存储媒体、或其它数字视频源。视频源(310)产生了一系列的帧速率为例如每秒30帧的视频帧。如本文所使用的,术语“帧”一般是指经编码或重构的源图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于隔行视频,在示例实施例中,在编码之前对隔行视频帧进行去隔行。另选地,两个互补的隔行视频字段被一起编码为单个视频帧或编码为两个单独编码的字段。除了指示逐行扫描视频帧或隔行扫描视频帧,术语“帧”或“图片”可指示单个非成对视频字段、视频字段的互补对、代表给定时间视频对象的视频对象平面,或较大图像中的感兴趣区域。视频对象平面或区域可以是较大图像的一部分,该图像包括场景的多个对象或区域。
抵达的源帧(311)被存储在源帧临时内存存储区域(320),该区域包括多个帧缓冲器存储区域(321,322,.…..,32n)。帧缓冲器(321,322等)将一个源帧保持在源帧存储区域(320)。在一个或多个源帧(311)已被存储在帧缓冲器(321,322等)中之后,帧选择器(330)选择来自源帧存储区域(320)的单个源帧。由帧选择器(330)选择用于输入到编码器(340)中的帧的顺序可能不同于由视频源(310)产生帧的顺序,例如,一些帧的编码可能按顺序延迟,以便使一些后面的帧先被编码,从而有利于临时反向预测。在编码器(340)之前,编码器系统(300)可以包括预处理器(图中未示出),该预处理器在编码之前对所选择的帧(331)执行预处理(例如,滤波)。预处理还可以包括色彩空间转换成主要分量(例如,亮度)和次要分量(例如,偏向红色和蓝色的色度差异)以及用于编码的重采样处理(例如,用来降低色度分量的空间分辨率)。
编码器(340)对所选择的帧(331)进行编码以产生编码帧(341),并同时产生内存管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。如果当前帧并非已被编码的第一帧,那么,在执行其编码处理时,编码器(340)可以使用一个或多个已被保存在经解码的帧的临时内存存储区域(360)之中的之前编码/解码的帧(369)。这样的存储的经解码的帧(369)被用作参考帧,以便对当前源帧(331)的内容进行帧间预测。MMCO/RPS信息(342)向解码器指示哪些重构帧可能用作参考帧并因此应被存储在帧存储区域中。
一般而言,编码器(440)包括执行诸如运动估计和补偿、频率变换、量化和熵编码之类的编码任务的多个编码模块。由编码器(340)执行的确切操作可以根据压缩格式的不同而发生变化。输出的经编码的数据的格式可以是Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2、或MPEG-4),H.26x格式(例如,H.261、H.262、H.263、H.264),HEVC格式(H.265)或其他格式。
例如,在编码器(340)内,帧间编码的预测帧由依据参考帧的预测进行表示。运动估计器估计源帧(331)相对于一个或多个参考帧(369)的多组样本的运动。一组样本可以是一个宏块、子宏块或子宏块分区(如在H.264标准中),或者可以是一个编码树单元或预测单元(如在HEVC标准中)。通常,如本文所使使用,术语“块”指示一组样本,其可以是单个二维(“2D”)阵列或多个二维阵列(例如,一个用于亮度分量的阵列和两个用于色度分量的阵列)。在使用多个参考帧时,多个参考帧可以来自不同的时间方向或相同的时间方向。运动估计器输出诸如运动矢量之类的信息被熵编码的运动信息。运动补偿器将运动矢量应用到参考帧,以确定用于帧间预测的运动补偿的预测值。编码器确定块的运动补偿的预测值和相应的原始值之间的差(如果有的话)。使用频率变换、量化和熵编码对这些预测残余值进行进一步编码。例如,编码器(340)设置用于图片的亮度量化参数(“QP”)和色度QP、视频的切片和/或其他部分的值,并由此量化变换系数。同样,对于帧内预测,编码器(340)可以为块确定内部预测值,确定预测残余值,并对预测残余值进行编码(使用频率变换、量化和熵编码)。特别是,编码器(340)的熵编码器对量化的变换系数值,以及某些辅助信息(例如,运动矢量信息,QP值,模式决策,参数选择)进行压缩。典型的熵编码技术包括指数哥伦布编码、哥伦布莱斯编码、算术编码、差分编码、哈夫曼编码、行程长度编码、可变长度到可变长度(“V2V”)编码、可变长度到固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率间隔分区熵编码(“PIPE”),和上述的组合。熵编码器可以针对不同种类的信息使用不同的编码技术,可以组合应用多个技术(例如,先后应用哥伦布莱斯编码和算术编码),并且可以在特定编码技术内从多个代码表中进行选择。
编码帧(341)和MMCO/RPS信息(342)(或相当于MMCO/RPS信息(342)的信息,这是由于帧的依赖关系和有序结构在编码器(340)中是已知的)由解码过程模拟器(350)进行处理。解码过程模拟器(350)实施解码器的一些功能,例如,用来重构编码器(340)在运动估计和补偿中所使用的参考帧的解码任务。以和MMCO/RPS信息(342)一致的方式,解码过程模拟器(350)确定给定的经编码的帧(341)是否需要被重构和存储,以在待编码的后续帧的帧间预测中用作参考帧。如果需要存储经编码的帧(341),解码过程模拟器(350)对解码过程进行模拟,该解码过程将由接收经编码的帧(341)并产生相应的经解码的帧(351)的解码器进行。在这种情况下,当编码器(340)已使用已被存储在解码帧存储区域(360)中的经解码的(多个)帧(369)时,解码过程模拟器(350)也把来自存储区域(360)的经解码的(多个)帧(369)用作解码过程的一部分。
经解码的帧的临时内存存储区域(360)包括多个帧缓冲器存储区域(361,362,...,36n)。以和MMCO/RPS信息(342)一致的方式,解码过程模拟器(342)管理存储区域(360)的内容,从而使用编码器(340)不再需要的帧作为参考帧来识别任何帧缓冲器(361,362等)。模拟解码过程之后,解码过程模拟器(350)在帧缓冲器(361,362等)中存储已经以这种方式确定的新解码的帧(351)。
编码器(340)为根据缓冲区流模型(例如,假定参考解码器(“HRD”)或视频缓冲区检验器(“VBV”))的规范编码的图片设置CPBRD值。以这种方式,编码器(340)对比特流的比特率的波动应用限制,以帮助确保比特流可以在解码系统的缓冲资源内被解码。编码器(340)还设置CPBRD值来帮助解码器确定其解码过程操作的时间和步骤。
经编码的帧(341)和MMCO/RPS信息(342)(或相当于MMCO/RPS信息的信息)还在临时编码数据区域(370)中被缓冲。在编码数据区域(370)中被聚合的经编码的数据包括作为基本编码视频比特流的语法的一部分的、用于一个或多个图片的经编码的数据。聚合在编码数据区域(370)中的经编码的数据也可以包括与经编码的视频数据(例如,正如在一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息)中的一个或多个参数)相关的媒体元数据。此类媒体元数据可以包括指示用于图片CPBRD值的语法元素以及指示应如何解释CPBRD值(例如,作为PT SEI消息和BP SEI消息的一部分)的语法元素。
来自临时编码数据区域(370)的聚合的数据(371)由通道编码器(380)处理。通道编码器(380)可封装和/或复用聚合的数据以作为媒体流(例如,根据诸如ITU-T H.222.0|ISO/IEC 13818-1之类的媒体程序流或传输流格式,或者诸如IETF RFC 3550之类的互联网实施传输协议格式)进行传输或存储,在这种情况下,通道编码器(380)可以添加语法元素,作为媒体传输流的语法的一部分。这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。或者,通道编码器(380)可以将聚集数据进行组织以便作为文件(例如,根据诸如ISO IEC 14496-12之类的媒体容器格式)进行存储,在这种情况下,通道编码器(380)可以添加作为媒体存储文件的语法的一部分的语法元素。这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。或者,更一般地,通道编码器(380)可以实施一个或多个媒体系统复用协议或传输协议,在这种情况下,通道编码器(380)可以添加语法元素作为(多个)协议的语法的一部分。再次,这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。通道编码器(380)向通道(390)提供输出,该通道代表存储器、通信连接或用于输出的另一个通道。通道编码器(380)或通道(390)可能还包括诸如前向纠错(“FEC”)编码和模拟信号调制之类的其他元素(图中未示出)。
IV.示例解码器系统
图4是与其结合可实施一些所描述的实施例的示例解码器系统(400)的框图。解码器系统(400)可以是能够在多种编码模式(诸如用于实时通信的低延迟解码模式和用于来自文件或流的媒体播放的较高延迟编码模式)的任一种中操作的通用解码工具,或者可以是适于一种这样的解码模式的特殊用途解码工具。解码器系统(400)可以作为操作系统模块、作为一个应用程序库的一部分、或作为独立的应用程序而被实施。总之,解码器系统(400)接收来自通道(410)的编码数据并产生重构的帧作为用于输出目的地(490)的输出。经编码的数据可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。
解码器系统(400)包括通道(410),其可以代表存储器、通信连接或用于作为输入的编码数据的另一个通道。通道(410)产生已进行通道编码的编码数据。通道解码器(420)可以处理该编码数据。例如,通道解码器(420)对已聚合的用于作为媒体流(例如,根据诸如ITU-T H.222.0|ISO/IEC 13818-1之类的媒体程序流或传输流格式,或者诸如IETF RFC3550之类的互联网实施传输协议格式)传输或存储的数据进行解封装和/或解复用,在这种情况下,通道解码器(420)可以对作为媒体传输流的语法的一部分而添加的语法元素进行解析。这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。或者,通道解码器(420)对已聚集作为文件(例如,根据诸如ISO IEC 14496-12之类的媒体容器格式)进行存储的编码视频数据进行分离,在这种情况下,通道解码器(520)可以对作为媒体存储文件的语法的一部分而添加的语法元素进行解析。这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。或者,更一般地,通道解码器(420)可以实施一个或多个媒体系统解复用协议或传输协议,在这种情况下,通道解码器(420)可以对作为(多个)协议的语法的一部分而添加的语法元素进行解析。再次,这种语法可以包括指示用于图片的CPBRD值的语法元素以及指示应如何解释CPBRD值的语法元素。通道(410)或通道解码器(420)可能还包括诸如FEC解码和模拟信号解调制之类的其他元素(图中未示出)。
从通道解码器(420)输出的编码数据(421)被存储在临时编码数据区域(430),直到足够量的这种数据已被接收。编码数据(421)包括编码帧(431)和MMCO/RPS信息(432)。编码数据区域(430)中的经编码的数据(421)包含作为基本编码视频比特流的语法的一部分的、用于一个或多个图片的经编码的数据。编码数据区域(430)中的编码数据(421)还可以包括与编码的视频数据(例如,正如在一个或多个SEI消息或VUI消息中的一个或多个参数)相关的媒体元数据。此类媒体元数据可以包括指示用于图片CPBRD值的语法元素以及指示应如何解释CPBRD值(例如,作为PT SEI消息和BP SEI消息的一部分)的语法元素。
解码器(450)使用CPBRD值确定其整体解码过程的操作的时间和步骤。一般情况下,编码数据区域(430)暂时存储编码数据(421),直至该编码数据(421)被解码器(450)使用为止,正如CPBRD值所指示。此时,从编码数据区域(430)向解码器(450)传送用于编码帧(431)和MMCO/RPS信息(432)的编码数据。随着解码的继续,新的编码数据被添加到编码数据区域(430),编码数据区域(430)中剩余的最早的编码数据被转移到解码器(450)。
解码器(450)对编码帧(431)进行解码,以产生相应的解码帧(451)。在适当的情况下,当执行其解码过程时,解码器(450)可以将一个或多个之前解码的帧(469)作为用于帧间预测的参考帧使用。解码器(450)从解码帧的临时内存存储区域(460)读取这种之前解码的帧(469)。一般来说,解码器(450)包括多个执行诸如熵解码、帧内预测、运动补偿帧间预测、反量化和反频率变换之类的解码任务的解码模块。由解码器(450)执行的确切操作可以根据压缩格式的变化而发生变化。
例如,解码器(450)接收经编码的数据用于压缩的帧或帧序列,并产生包括经解码的帧(451)的输出。在解码器(450)之中,缓冲器接收经编码的数据用于压缩帧,并在CPBRD值标称指示的合适时间,将所接收的经编码的数据提供给熵解码器。熵解码器对熵编码的量化数据以及熵编码的辅助信息进行熵解码,通常在编码器中应用反熵编码。运动补偿器将运动信息应用于一个或多个参考帧来形成被重构的帧的块(例如,宏块、子宏块、子宏块分区、编码树单元、预测单元、或其组成部分,诸如编码树块、预测块或其他块)的运动补偿预测。帧内预测模块可以根据相邻的、之前重构的样本值对邻近的当前块的样本值在空间上进行预测。解码器(450)还对预测残余值进行重构。反量化器对熵解码的数据进行反量化。例如,解码器(450)基于比特流中的语法元素设置用于图片的亮度QP和色度QP、视频的切片和/或其他部分的值,并由此对变换系数进行反量化。反频率变换器将经量化的频域数据转换成空间域信息。对于帧间预测的帧,解码器(450)将重构的预测残余值与运动补偿预测相结合来形成重构帧。解码器(450)可以以类似方式将预测残余值与来自帧内预测的空间预测相结合。自适应去块滤波器被包括在视频解码器(450)中的运动补偿回路中,以对解码帧(451)中的跨块边界行和/或列的不连续性进行平滑。其他滤波(诸如去铃声滤波,自适应环路滤波(“ALF”),或样本自适应补偿(“SAO”)滤波,图中未示出)可替代地或额外地作为环内滤波操作而被应用。
解码帧临时内存存储区域(460)包括多个帧缓冲器存储区域(461,462,...,46n)。解码帧存储区域(460)是DPB的示例。解码器(450)使用MMCO/RPS信息(432)来识别帧缓冲器(461,462等),在帧缓冲器中可存储经解码的帧(451)。解码器(450)在该帧缓冲器中存储经解码的帧(451)。
输出定序器(480)(例如,使用BP和PT SEI消息中的信息)识别按输出顺序产生的下一帧在解码帧存储区域(460)中何时可用。当按输出顺序产生的下一帧(481)在解码帧存储区域(460)中可用时,该帧由输出定序器(480)读取并输出到输出目的地(490)(例如,显示器)。一般情况下,帧由输出定序器(480)从解码帧存储区域(460)输出的顺序可能与帧被解码器(450)解码的顺序不同。
V.示例视频编码器
图5是与其结合可以实施一些所描述的实施例的一般性视频编码器(500)的框图。编码器(500)接收一系列包括当前帧(505)的视频帧,并产生作为输出的经编码的数据(595)。
编码器(500)以块为基础,并使用取决于实施方式的块格式。块可以在不同阶段进一步细分,例如,在频率变换阶段和熵编码阶段。例如,帧可以分成64×64块、32×32块或16×16块,其可以进而分为更小的样本值块,以便进行编码和解码。
编码器系统(500)对帧间预测的帧和帧内编码的帧进行压缩。为了便于介绍,图5示出了通过编码器(500)用于帧内编码的“帧内路径”和用于帧间编码的“帧间路径”。编码器(500)的多个组件同时用于帧内编码和帧间编码。由那些组件执行的确切操作可以根据正在压缩的信息类型的不同而不同。
如果当前帧(505)为帧间预测帧,运动估计器(510)则相对于一个或多个参考帧对当前帧(505)的块(例如,宏块、子宏块、子宏块分区、编码树单元、预测单元、或其组件,诸如编码树块、预测块或其他块)的运动进行估计。帧存储器(520)缓冲一个或多个重构的之前帧(525)以用作参考帧。在使用多个参考帧时,多个参考帧可以来自不同的时间方向或相同的时间方向。运动估计器(510)输出作为辅助信息的运动信息(515),诸如差分运动向量信息。
在形成运动补偿的当前帧(535)时,运动补偿器(530)将重构的运动向量应用到重构的(多个)参考帧(525)。运动补偿的当前帧(535)的块和原始当前帧(505)的相应部分之间的差(如果有的话)为用于所示块的预测残差(545)。在当前帧的后期重构期间,重构的预测残余值被添加到运动补偿的当前帧(535),以获得更接近原始当前帧(505)的重构帧。然而在有损压缩中,一些信息仍从原始当前帧(505)中丢失。帧内路径可以包括帧内预测模块(图中未示出),其根据相邻的、之前重构的样本值对当前块的样本值在空间上进行预测。
频率变换器(560)将空间域视频信息转换成频域(即,频谱变换)数据。对于基于块的视频帧,频率变换器(560)将离散余弦变换、其整数近似,或其它类型的前向块变换(例如,离散正弦变换或其整数近似)应用到样本值数据或预测残差数据的块,从而产生频率变换系数块。然后,量化器(570)对变换系数进行量化。例如,量化器(570)将死区标量量化应用到频域数据,量化步长在一帧一帧的基础上、一切片一切片的基础上、一块一块的基础上、特定频率的基础上或其它基础上发生变化。例如,编码器(500)设置用于图片的亮度QP和色度QP、视频(诸如编码单元)的切片和/或其他部分的值,并由此量化变换系数。
当需要将当前帧的重构版本用于后续运动估计/补偿时,反量化器(576)对量化的频率系数数据进行反量化。反频率变换器(566)执行反频率变换,从而产生重构预测残余值或样本值的块。对于帧间预测帧,编码器(500)将重构的预测残余值(545)与运动补偿的预测(535)相结合以形成重构帧(505)。(虽然在图5中未示出,但是,在帧内路径中,编码器(500)可以将预测残余值与来自帧内预测的空间预测相结合。)帧存储器(520)缓冲重构的当前帧以在随后的运动补偿预测中使用。
在图5中,编码器(500)中的运动补偿环路(通常)在帧存储器(520)之前包括自适应环路内去块滤波器(522)。解码器(500)将环路内滤波应用于重构的帧,以自适应地平滑帧中的跨边界的不连续性。其他滤波(诸如去铃声滤波、ALF、或SAO滤波,图中未示出)可替代地或额外地作为环内滤波操作而被应用。
熵编码器(580)对量化器(570)的输出以及运动信息(515)和某些辅助信息(例如,QP值)进行压缩。熵编码器(580)向缓冲器(590)提供经编码的数据(595),缓冲器(690)将经编码的数据复用为输出比特流。
控制器(图中未示出)接收来自编码器的各个模块的输入。控制器在编码期间对中间结果进行估计,例如,设置QP值并执行速率-失真分析。控制器可以和其他模块协作以便在编码期间设置并更改编码参数。控制器可以根据缓冲区流模型设置编码的图片的CPBRD值。以这种方式,控制器可以对比特流的比特率的波动应用限制,以帮助确保比特流可以在解码系统的缓冲资源内被解码。控制器还对CPBRD值进行设置,以帮助解码器确定其解码过程的操作的时间和步骤。
根据实施方式和所需的压缩类型,可对编码器的模块进行添加、省略、分成多个模块、与其它模块组合、和或使用相似模块替代。在替代实施例中,具有不同模块和/或其他模块配置的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(500)的变化版本或补充版本。编码器(500)内模块之间所示的关系指示编码器中的一般信息流;为简洁起见,其它关系并未在图中示出。
VI.示例视频解码器。
图6是与其结合可以实施几个所描述的实施例的一般性解码器(600)的框图。解码器(600)接收经编码的数据(695)用于压缩的帧或帧序列,并产生包括重构帧(605)的输出。为了便于介绍,图6示出了通过解码器(600)用于帧内解码的“帧内路径”和用于帧间编码的“帧间路径”。解码器(600)的多个组件同时用于帧内解码和帧间解码。由那些组件执行的确切操作可以根据正在解压缩的信息类型的不同而发生变化。
缓冲器(690)接收经编码的数据(695)用于压缩帧,并将所接收的经编码的数据提供给解析器/熵解码器(680),其中由各个帧的CPBED值至少部分地指示时间。解析器/熵解码器(680)对熵编码的量化数据以及熵编码的辅助信息进行熵解码,通常在编码器中应用反熵编码。
运动补偿器(630)将运动信息(615)应用于一个或多个参考帧(625)来形成正在被重构的帧(605)的块(例如,宏块、子宏块、子宏块分区、编码树单元、预测单元、或其组成部分,诸如编码树块、预测块或其他块)的运动补偿预测(635)。帧存储器(620)存储一个或多个之前重构的帧(625)以用作参考帧。
帧内路径可以包括帧内预测模块(图中未示出),其根据相邻的、之前重构的样本值对当前块的样本值在空间上进行预测。在帧间路径中,解码器(600)对预测残余值进行重构。反量化器(670)对熵解码的数据进行反量化。例如,解码器(600)基于比特流中的语法元素设置用于图片的亮度QP和色度QP、视频(诸如编码单元)的切片和/或其他部分的值,反量化器(670)由此对变换系数进行反量化。
反频率变换器(660)将经重构的频域数据转换成空间域信息。例如,反频率变换器(760)将反块变换应用到频率变换系数,从而产生样本值数据或预测残差数据。反频率变换可以是反离散余弦变换、其整数近似、或其它类型的反频率变换(例如反离散正弦变换或其整数近似)。
对于帧间预测的帧,编码器(600)将重构的预测残余值(645)与运动补偿的预测(635)相结合以形成重构帧(605)。(虽然图6中未示出,但是在帧内路径中,解码器(600)可以将预测残余值与来自帧内预测的空间预测相组合。)解码器(600)中的运动补偿环路包括在帧存储器(620)之前或之后的自适应环路内去块滤波器(610)。解码器(600)将环路内滤波应用于重构的帧,以自适应地平滑帧中跨边界的不连续性。其他滤波(诸如去铃声滤波、ALF、或SAO滤波,图中未示出)可替代地或额外地作为环内滤波操作而被应用。
在图6中,解码器(600)还包括后处理滤波器(608)。后处理滤波器(608)可以包括去铃声滤波、自适应维纳滤波、胶片颗粒再现滤波、SAO滤波或其它类型的滤波。
根据实施方式和所需的解压缩类型,可对解码器的模块进行添加、省略、分成多个模块、与其它模块组合、和或使用相似模块替代。在替代实施例中,具有不同模块和/或其他模块配置的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解码器(600)的变化版本或补充版本。解码器(600)内模块之间所示的关系指示解码器中的一般信息流;为简洁起见,其它关系并未示出。
VII.用来简化拼接的CPBRD值的语法和语义
本节介绍了各种用于编码图片缓冲区清除延迟(“CPBRD”)值的语法和语义的创新。在许多情况下,该创新简化了视频序列的拼接。针对正如根据HEVC标准和H.264/AVC标准以补充增强信息(“SEI”)消息进行信号通知的CPBRD值,提供了各种示例。
A.引言
在诸如JCTVC-K1003之类的HEVC标准的草案版本中,以及在H.264/AVC标准中,规定了图片定时SEI(“PT SEI”)消息的语法和语义。PT SEI消息包括指示编码图片缓冲区清除延迟(“CPBRD”)的语法元素。在JCTVC-K1003中,语法元素被命名为au_cpb_removal_delay_minusl,其解释是向PT SEI消息中用信号通知的编码整数值加1。
一般情况下,用于给定图片(通常称为“当前图片”)的CPBRD值和初始缓冲延迟(或者,另选地,初始缓冲区充满度)一起,指定了要从编码图片缓冲区(“CPB”)中清除的与图片相关联的编码数据的标称时间。CPB是假定解码器缓冲区,解码器可以将其作为参考使用来设计解码器缓冲区。同样,编码器可以基于假定解码器缓冲区生成兼容比特流。在HEVC标准的情景中,与当前图片相关联的数据集是“存取单元”。在可称为HRD或VBV的缓冲区模型的情景中对CPBRD值进行理解。根据缓冲区模型的规范有助于确保比特流可以在解码系统的缓冲资源内被解码,并有助于解码器确定用于其图片整体解码过程的操作的时间和步骤。
当编码视频数据中出现缓冲周期SEI(“BP SEI”)消息时,用于CPBRD值的定时参考被重置用于后续消息。在JCTVC-K1003中,CPBRD值始终相对于解码顺序中包含BPSEI消息的在前图片(如果有)的标称清除时间进行编码。编码器可能会随着比特流中的每个随机存取点(“RAP”)图片一起发送BP SEI消息。编码器还可能和其他不是RAP图片的图片一起发生BPSEI消息。
视频拼接工具通常在比特流中RAP图片的位置处执行拼接操作。RAP图片可以是瞬时解码器刷新(“IDR”)图片。RAP图片具有与其相关联的BP SEI消息。例如,拼接操作可用于在电视节目中插入一条广告或一系列广告,或者在不同的电视节目之间切换。
HEVC RAP图片的设计专门用来使RAP图片可作为比特流拼接点使用。然而,在JCTVC-K1003中,CPBRD值始终相对于解码顺序的具有BP SEI消息的在前图片(如果有的话)的标称CPB清除时间进行编码。由于这个参考点,在比特流之间拼接时(或者平滑地级联单独编码的比特流来形成更长的比特流时),拼接系统可能很难确定CPBRD值的正确值。
因此,对于用于JCTVC-K1003中的CPBRD语法和语义的途径,为了执行拼接操作以便从比特流A的图片发送切换到比特流B的图片发送,拼接工具调整拼接点处图片的CPBRD值(即,与拼接点处图片相关联的PT SEI消息中的CPBRD值)。发生切换的拼接点是对应于比特流B中的RAP图片的位置。(拼接点处比特流B的RAP图片本身也具有BP SEI消息,而且该BRSEI消息将会按照解码顺序重置来自于比特流B的后续图片的CPBRD值的参考时间,因此,无需对比特流B中的后续图片的CPBRD值进行调整。)为了完成拼接操作,拼接工具通常执行以下步骤,虽然并不一定按照这个顺序,而且可能会存在一些替代的变化。
拼接工具相对于比特流B中具有之前BP SEI消息的图片的标称清除时间,查找并读取比特流B中的RAP图片的CPBRD值。该CPBRD的值为DRAPB。如果在比特流B中没有前面的图片,可以基于本地帧速率(例如,基于DeltaToDivisor,这可以基于比特流A中的最后一个图片或者比特流B中的第一个图片的pic_struct_present_flag、field_pic_flag、和pic_struct的值进行指定)将DRAPB设置成一个值。
拼接工具还会查找并读取比特流B中解码顺序中在RAP图片之前的(比特流B的)图片的CPBRD值,该值是相对于比特流B中的具有前面BP SEI消息的图片的延迟。该CPBRD值为DPREVB。如果比特流B中没有在前图片,则将DPREVB设置为0。
拼接工具还会查找并读取比特流A中解码顺序中在拼接点之前的(比特流A的)最后一个图片的CPBRD值,该值是相对于比特流A中具有之前BP SEI消息的图片的延迟。该CPBRD的值是为DPREVA。如果在比特流A中按照解码顺序在拼接点之前的(比特流A的)最后一个图片是具有BP SEI消息的图片,则将DPREVA设置为0。
拼接工具然后在拼接点对来自于比特流B的RAP图片的CPBRD值进行修改,将上述CPBRD值设置成等于DPREVA+(DRAPB-DPREVB),因此,在拼接点处的来自于比特流B的RAP图片的CPBRD值相对比特流A中的具有之前的BP SEI消息的图片进行表示。拼接工具将该修改过的RAP图片和来自于比特流B的后续图片放入拼接的比特流中的从比特流A中获得的图片之后。
某些与其他操作相关联的细节,以及潜在的复合形式已从该说明书中省略。例如,该说明书并未论及当参考时钟周期值在两个比特流之间不同或者当RAP图片和BP SEI消息的位置不重合时的情况。
拼接工具执行上文所描述的查找和读取操作,这是因为根据之前用于CPBRD语法和语义的途径,CPBRD信息被引用到比特流中具有之前BP SEI消息的图片。拼接工具调整拼接的比特流中的CPBRD信息,以便相对于该参考点表示拼接点处的CPBRD值。查找和读取CPBRD值的操作可能比较繁琐或难以执行,而且可能需要访问拼接系统不易于访问(例如,由于加密或缓冲容量限制)的数据。
图7示出了涉及级联两个单独编码的比特流A和B的简化情形的问题。图7上半部分示出了在拼接之前的比特流A的三个存取单元(“AU”)和比特流B的两个AU。对于比特流A,使用信号通知CPBRD值来指示相对于用于比特流A的第一AU(即,AU 0)的初始CPB清除延迟的第二和第三AU(即,AU 1和AU 2)的清除延迟。对于比特流B,使用信号通知CPBRD值来指示相对于用于比特流B的第一AU(即,AU 0)的初始CPB清除延迟的第二AU(即,AU 1)的清除延迟。au_cbp_removal_delay(k)的值是指AU编号K的CPB清除延迟。当比特流B的AU拼接在比特流A的AU之后时,针对比特流B的第一AU(AU0)确定CPBRD。图7的下半部分的示出了拼接成单个比特流后的比特流A和B的AU。AU的一些CPBRD值在拼接的比特流(即,相对于比特流A的第一AU(AU 0)的初始CPB清除延迟的比特流A的第二和第三AU(AU 1和AU 2)的CPBRD值,和相对于比特流B的第一AU(AU0)的CPB清除延迟的比特流B的第二AU(AU 1)的CPBRD值)中不变。然而,调整比特流B的第一AU(拼接前的AU 0;拼接后编号为AU 3)的CPBRD值,以便表达相对于比特流A的第一AU(AU 0)的初始CPB清除延迟的清除延迟来用于拼接的比特流。在更复杂的示例(例如,当比特流包括更多AU和/或当一些AU不可用时)中,确定拼接的比特流中的用于第二序列的第一AU的CPBRD值可能很难。
B.修改CPBRD语法和语义的一般途径
本节描述了对之前CPBRD语法和语义的途径的各种修改。根据修改,当给定图片(通常称为“当前图片”)具有与之关联的BP SEI消息时,编码器可以发送指示以下内容的语法元素:(a)相对于图片的标称CPB清除时间的CPBRD值,其中该图片按照解码顺序(也被称为比特流顺序或经解码的顺序)在当前具有BP SEI消息的图片之前,和之前途径一样(“a项”);
(b)相对于最后一个图片的标称CPB清除时间的CPBRD值,其中该最后一个图片按照解码顺序在当前图片之前,无论该最后一个在前图片是否具有BP SEI消息(“b项”)(在一些变化中,将处于相同的或较低时间子层的当前图片之前的最后一个图片考虑在内;例如,如果当前图片的Temporalld等于0,在前图片的Temporalld也等于0);和
(c)关于(i)a项中指定的值是否存在(或者如果始终存在,其值是否有效),和(ii)b项中指定的值是否存在(或者如果始终存在,其值是否有效)的指示(“c项”)。
c项的两个指示可以合并成指示三种允许的组合(也就是,a项有效/b项无效,a项无效/b项有效,或者a项和b都有效)之一的单个语法元素。(另选地,在值为0无法作为有效值的实施方式中,对于c项,一种指示缺乏有效性的方式将是使用0值用于CPBRD值。对CPBRD值都无效的指示将被禁止。)。
使用这种语法,拼接工具可以在许多情况下简化其拼接操作。如果比特流B的内容符合b项约定,则无需读取其他值,来自两个比特流的数据可以简单地级联在一起。如果比特流B的内容也包含符合a项中约定的语法元素,a项CPBRD数据将被清除或在级联的比特流中被标记为无效。
在当前图片没有BP SEI消息时,可以使用如JCTVC-K1003中的HEVC标准的语法或等同的语法(如在H.264/AVC标准中),而无需改动。
作为b项变化形式,语法可以指定相对于最后一个图片的标称CPB清除时间的CPBRD增量值,其中,在相同的时间子层或较低的时间子层内(而不是在任何时间子层内,如上所示),该最后一个图片按照解码顺序在当前图片之前。在这种情况下,相对于相同的(或较低)的时间子层的在前图片表示CPBRD值,而不是只是任何子层的在前图片,这使方案对较高时间子层的图片(如果有的话)的清除具有鲁棒性。这种变化也可分别应用于在第C、D和E节所描述的单值法和双值法。例如,如果当前图片的Temporalld等于0,则相对于Temporalld等于0的在前图片对CPBRD值进行表示。这可能是下述情况,当符合b项约定的CPBRD值仅针对Temporalld等于0的图片进行信号通知的情况(例如,由于具有这种CPBRD值的SEI消息可以仅用于Temporalld等于0的图片的条件)。
C.使用标志的单值法
在以上描述的修改的单值变化中,对于一些图片,编码器发送两个CPBRD值之一用于a项和b项,以及用信号通知的CPBRD值是否对应于a项或b项约定的指示。
图8和图9示出了BP SEI消息(如在JCTVC-K1003中)被修改并且一些PT SEI(如在JCTVC-K1003中)消息的语义被修改但语法不变的单值法的实施方式。将BP SEI消息语法修改成包括称为concatenation_flag的标志,如图8的示例语法(800)所示。concatenation_flag是一个二进制值。当给定图片(当前图片)具有BP SEI消息时,CPBRD值在当前图片的PTSEI消息中的语义取决于图片的BP SEI消息中concatenation_flag的值。图9示出了用于PTSEI消息的语法(900),包括语法元素au_cpb_removal_delay_minusl。当concatenation_flag的值为0时,语法元素au_cpb_removal_delay_minusl指示的CPBRD值根据a项约定进行解释。另一方面,当concatenation_flag的值为1时,由au_cpb_removal_delay_minusl指示的CPBRD值根据b项约定进行解释。
图8和图9中所示的其它语法元素具有JCTVC-K1003中指定的含义。
对于拼接的比特流,当concatenation_flag为1时,用于具有BP SEI消息的图片n的标称清除时间tr,n(n)可以根据在前图片(存取单元)n-1的标称清除时间tr,n(n-1)以及延迟进行计算:
tr,n(n)=tr,n(n-1)+tc*(Max(au_cpb_removal_delay(n),Ceil((InitCpbRemovalDelay[SchedSelldx]÷90000+taf(n-l)-tr,n(n-1))÷tc)))。
在这个公式中,如果在拼接点(图片n)处开始解码,限制Ceil((InitCpbRemovalDelay[SchedSelldx]÷90000+taf(n-l)-tr,n(n-1))÷tc)确保了延迟至少和其预期一样长,而不存在缓冲区下溢。根据用信号通知的用于图片n的较长的CPBRD值和限制指示的启动延迟设置添加到tr,n(n-1)的延迟。
图10示出了考虑限制Ceil((InitCpbRemovalDelay[SchedSelldx]÷90000+taf(n-l)-tr,n(n-1))÷tc)的原因。对于每个与缓冲周期SEI消息相关的存取单元n(n>0),Δtg,90(n)的值由Δtg,90(n)=90000*(tr,n(n)-taf(n-1))指定,其中tr,n(n)是存取单元n(在图10中,当前缓冲周期的第一存取单元)的标称清除时间,其中taf(n-1)是存取单元n-1(在图10中,之前缓冲周期的最后一个存取单元)的最终抵达时间。在图10中,当流1和流2级联在一起,如果使用CPBRD值可能会发生下溢。采用限制,避免了下溢,这是因为流2在级联之后的缓冲状态和原始缓冲状态保持一样。
D.使用标志和Δ值的双值法
在上面所描述的修改的一些双值变化中,对于一些图片,编码器可以在用于RAP图片的SEI消息中发送一个或两个CPBRD值用于a项和b项。
图11示出了BP SEI消息(如在JCTVC-K1003之中)的语法和语义被修改的双值法的实施方式。PT SEI消息(如在JCTVC-K1003中)的语法不变。如图11的示例语法(1100)中所示,BP SEI消息语法被修改成包括级联标记和称为au_cpb_removal_delay_delta_minusl的语法元素,后者可以指示CPBRD“Δ”值(此处为Δ值减1)。
concatenation_flag语法元素指示指定的限制是否适用于解码顺序中在前图片的au_cpb_removal_delay_delta_minusl的值和au_cpb_removal_delay_minusl的值之间的关系(如果有的话)(或者,在一些变化中,处于相同或较低时间子层中的在前图片(如果有的话),例如,通过检查Temporalld小于或等于当前图片的Temporalld值的在前图片)。例如,当考虑到时间子分层时,如果当前图片的Temporalld等于0,检查Temporalld等于0的在前图片。
au_cpb_removal_delay_delta_minusl语法元素再加上1,指定相对于在比特流顺序中在当前图片之前的最后一个图片的标称CPB清除时间的CPB清除延迟增量值(如果有的话)(或者,在一些变化中,处于相同或较低时间子层中的最后一个此类图片(如果有的话),例如,通过检查Temporalld小于或等于当前图片的Temporalld值的在前图片)。例如,当考虑到时间子分层时,如果当前图片的Temporalld等于0,检查Temporalld等于0的在前图片。
当concatenation_flag等于0时,CPBRD值(正如由用于当前图片的PT SEI消息的au_cpb_removal_delay_minusl语法元素确定)根据a项进行解释。如果在前图片没有BPSEI消息,该a项CPBRD值等于根据b项CPBRD值再加上在解码顺序中在当前图片之前的图片(在一些变化中为合适时间子层的在前图片)的a项CPBRD值。b项CPBRD值是当前图片的a项CPBRD值和在前图片的a项CPBRD值之间的差。该b项值是由语法元素au_cpb_removal_delay_delta_minusl指示,而且其值可以根据两个a项CPBRD值之间的差进行检查,所述两个a项CPBRD值在当前和在前图片的PT SEI消息中被发送以检验a项和b项CPBRD值都有效。单独的a项CPBRD值使用信号在用于当前图片的PT SEI消息中进行通知。换句话说,在当前图片具有BP SEI消息而且concatenation_flag等于0时,并且在当前图片不是比特流中的第一个图片时,需要符合以下要求实现比特流一致性。
(1)如果在前图片(或者,在一些变化中,Temporalld小于或等于当前图片的Temporalld的值的在前图片)没有BP SEI消息,当前图片的au_cpb_removal_delay__minusl等于在前图片(在一些变化中,Temporalld小于或等于当前图片的Temporalld的值的在前图片)的au_cpb_removal_delay__minusl。
(2)否则(在前图片具有BP SEI消息),au_cpb_removal_delay__minusl等于au_cpb_removal_delay_delta_minusl。这些要求意味着当concatenation_flag等于0时,假设满足上述条件并且在前图片没有BP SEI消息,用于a项和b项指示均有效且存在。在这种情况下,用于当前图片的BP SEI消息包括b项CPBRD值(使用语法元素au_cpb_removal_delay_delta_minusl表示),用于当前图片的PT SEI消息包括a项CPBRD值(使用au_cpb_removal_delay_minusl表示)。另一方面,当在前图片具有BP SEI消息(而且标志仍等于0)时,语法元素au_cpb_removal_delay_delta_minusl和au_cpb_removal_delay_minusl都指示a项CPBRD值。
当concatenation_flag等于1时,不需要针对语法元素au_cpb_removal_delay_delta_minusl和au_cpb_removal_delay_minusl满足以上所描述的比特流一致性要求。当标志等于1时,CPBRD计算被改变成适合比特流的拼接,而不是直接引用到具有BP SEI消息的在前图片。在当前图片具有BP SEI消息并且concatenation_flag等于1时,用于当前图片的au_cpb_removal_delay_minusl语法元素(在用于当前图片的PT SEI消息中)被忽略。因此,当concatenation_flag等于1时,只有b项的指示有效,如au_cpb_removal_delay_delta_minusl语法元素所指示(在用于当前图片的BP SEI消息中)。
以上指定的CPBRD值的解释将使通过简单地将拼接点的用于RAP图片的BP SEI消息中的concatenation_flag的值从0改成1,即可能实现比特流(使用了适当设计的引用结构)的拼接。
在此方案中,由于b项的指示始终有效(尽管在一些情况下,其需要等于当前图片的a项CPBRD值,而且在其它情况下,需要等于当前和在前图片的a项CPBRD值之间的差),HRD定时信息的规范可以始终基于b项。进一步地,当concatenation_flag等于0时,解码器可以检查是否满足相等的条件。如果没有满足,这就表明出现了一些问题(例如,在前图片已丢失,或处于相同的或较低时间子层的在前图片已丢失)。在检测到该图片已丢失后,解码器可以通过解释a项CPBRD数据和丢弃b项数据(因为从该数据计算正确的CPBRD时间需要使用丢失图片的数据)来恢复正确的CPBRD定时信息。如果检测到这种损失,解码器也可以调用丢失隐藏措施。
在这种使用标志(例如concatenation_flag)和Δ值的双值法中,用于具有BP SEI消息的图片n的标称清除时间可以根据在前图片(存取单元)nb,的标称清除时间以及延迟进行计算:例如,当存取单元n是未初始化HRD的缓冲周期的第一存取单元时,对来自CPB的存取单元n的标称清除时间tr,n(n)进行了如下指定。
如果当前图片与concatenation_flag等于1的BP SEI消息相关联,标称清除时间tr,n(n)被指定为:
tr,n(n)=tr,n(nb)+tc*(Max((au_cpb_removal_delay_delta_minus1(n)+1),Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(nb)-tr,n(nb))÷tc)))。
其中,tr,n(nb)是在前图片(在一些变化中,是Temporalld小于或等于当前图片的Temporalld值的在前图片)的标称清除时间,au_cpb_removal_delay_delta_minus1(n)是在与存取单元n相关联的BP SEI消息中的au_cpb_removal_delay_delta_minus1的值。限制Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(nb)-tr,n(nb))÷tc)确保了在拼接点(图片n)处开始解码的情况下,延迟至少与其预期一样长,而不会有缓冲区下溢。根据用信号通知的用于图片n的较长的CPBRD值和限制所指示的启动延迟设置添加到tr,n(nb)的延迟。
否则(当前图片不与concatenation_flag等于1的BP SEI消息相关联),标称清除时间被指定为:
tr,n(n)=tr,n(nb)+tc*(au_cpb_removal_delay_minus1(n)+1),
其中tr,n(nb)是之前缓冲周期的第一存取单元的标称清除时间,而且au_cpb_removal_delay_minusl(n)是au_cpb_removal_delay_minusl在与存取单元n相关联的PTSEI消息中的值。
对于使用级联标志和Δ值的双值法,对解码器复杂性和语法数据的添加量的影响都达到最小。添加的语法元素(au_cpb_removal_delay_delta_minusl和相关联的concatenation_flag)只需要用于具有BP SEI消息的图片,而这比较少见。拼接操作可能会极大地简化。使用该方法,通过简单地将拼接点的用于RAP图片的BP SEI消息中的concatenation_flag的值设置成1,就可能在比特流之间进行拼接,或者可能对单独编码的比特流(使用了适当设计的引用结构)进行平滑级联。同时,当concatenation_flag等于0时,指定的限制将使解码器检查是否满足该限制,以作为在前图片(或者处于相同或较低时间子层中的在前图片)的丢失检查方法。
E.替代CPBRD语法和语义的有条件使用
在一些变化中,在比特流中使用信号通知使用或不使用替代CPBRD语法和语义。因此,如果添加的数据量是个问题,额外的语法元素的存在能够以更高级别的语法的标志为条件,其中在不存在额外的语法元素时应用常规解释(相对于具有BP SEI消息的在前图片的CPBRD值)。
例如,编码器可以在一个序列参数集(“SPS”)中或比特流中的其它地方设置一个开/关值,以便指示是否使用支持简化的视频拼接操作的CPBRD语法和语义。如果开/关值指示用于简化的视频拼接的支持关闭,编码器则使用常规CPBRD语法和语义,和之前的途径一样。如果开/关值指示用于简化的视频拼接的支持打开,编码器则使用支持简化的视频拼接的CPBRD语法和语义(例如,根据本文所描述的新途径中的一个)。
相应的解码器接收并解析活动的SPS中或比特流中其他地方的开/关值,以便指示是否使用支持简化的视频拼接操作的CPBRD语法和语义。如果开/关值指示用于简化的视频拼接的支持关闭,解码器则使用常规CPBRD语法和语义,和先前的途径一样。如果开/关值指示用于简化的视频拼接的支持关闭,解码器则使用支持简化的视频拼接的CPBRD语法和语义(例如,根据本文所描述的新途径中的一个)。
在决定如何执行拼接操作时,视频拼接工具可以将开/关标志考虑在内。如果开/关值未设置(关闭),拼接工具则使用常规拼接同时调整CPBRD值,与前述途径一样。如果开/关值设置(打开),拼接工具则使用本文所描述的简化的级联操作。
F.解码单元的替代
在许多之前的示例中,对CPBRD值进行设置或确定来用于图片。这样的图片也可被称作与主要图片对应的存取单元。
另选地,对CPBRD值进行设置或确定来用于解码单元,其中解码单元是用于主要图片的存取单元的子集。例如,解码单元可以是图片的一个切片。HRD可以在存取单元或解码单元(例如,用于图片的切片或其他部分)上运行。一般情况下,对于解码单元,CPBRD的值是相对于在前图片的最后一个解码单元而言的。
本文所描述的技术和工具可以应用于存取单元或解码单元。术语“单元”可以指存取单元或解码单元。用于单元的CPBRD值相对于在前图片进行表示。对于存取单元,根据解释,在前存取单元可以是最后一个存取单元、相同时间子层或较低时间子层中的最后一个存取单元、或者具有BP SEI消息的最后一个存取单元。对于解码单元,则考虑这种在前存取单元的最后一个解码单元。
G.修改CPBRD语法和语义的技术
图12示出了编码期间用于设置CPBRD值的一般性技术(1200)。由如上文参见图3所述的视频编码器或其他视频编码器执行该技术(1200)。
编码器针对视频序列的给定单元设置(1210)CPBRD值。例如,给定单元是用于具有BP SEI消息并且可以是随机存取图片的图片的存取单元。或者,给定单元是用于这种图片的一部分的解码单元。用于给定单元的CPBRD值指示相对于解码顺序中的在前图片的标称CPB清除时间的增量值,无论该在前图片是否具有BP SEI消息。在一些实施方式中,在前图片在解码顺序中直接在给定单元(或者包括给定单元的图片)之前。另选地,在处于与给定单元相同的时间子层或者处于较低时间子层的视频序列的图片之中,在前图片在解码顺序中直接在给定单元(或者包括给定单元的图片)之前。例如,当考虑到时间子分层时,如果当前图片的Temporalld等于0,则在前图片是Temporalld等于0的在前图片。
编码器使用信号通知(1220)给定单元的CPBRD值。例如,CPBRD值写入BP SEI消息中,或者写入与编码图片的存取单元相关联的BP SEI消息中。
在一些变化形式(例如,双值法)中,编码器可以根据不同的约定为给定单元设置多个CPBRD值。例如,除了设置(1210)成相对于在解码顺序中的在前图片(无论在前图片是否具有BP SEI消息)的标称CPB清除时间的增量值的CPBRD值,编码器为给定单元设置其它CPBRD值。用于给定单元的其它CPBRD值指示相对于解码顺序中的具有BP SEI消息的在前图片的标称CPB清除时间的增量值。编码器然后用信号通知用于给定单元的其它CPBRD(例如,在给定单元的PT SEI消息中)编码器还可以用信号(例如,写入(多个)SEI消息)通知一个或多个对每个CPBRD值是否分别存在或不存在的指示。或者,编码器可以用信号(例如,写入(多个)SEI消息)通知一个或多个对每个CPBRD值是否分别有效或无效的指示。
在其他变化(例如,单值法)中,编码器用信号通知(例如,写入(多个)SEI消息)对给定单元的CPBRD值的类型的指示。例如,CPBRD值的类型指示是在给定单元或包括给定单元的图片的BP SEI消息中进行信号通知。对CPBRD值的类型指示指示了如何解释用于给定单元的CPBRD值,该指示可以在PT SEI消息中用信号通知。例如,编码器用信号通知对用于视频序列的给定单元的CPBRD值的类型的指示,然后对用于给定单元的CPBRD值进行设置。对于第一种类型的CPBRD值,用于给定单元的CPBRD值指示相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。对于第二种类型的CPBRD值,用于给定单元的CPBRD值指示相对于在解码顺序中的在前图片(无论该在前图片是否具有BP SEI消息)的标称CPB清除时间的增量值。编码器然后用信号通知用于给定单元的CPBRD值。
在又其他的变化中(例如,使用标志和Δ值的双值法),编码器用信号通知(例如,写入(多个)SEI消息)对给定单元的CPBRD值的类型指示,并用信号通知用于给定单元的CPBRD值来代表Δ值。例如,CPBRD值的类型的指示和CPBRD值(Δ值)是在给定单元或包括给定单元的图片的BP SEI消息中进行信号通知。根据CPBRD值的类型,用于当前图片的CPBRD值可以在PT SEI消息中进行信号通知。例如,编码器用信号通知对用于视频序列的给定单元的CPBRD值的类型的指示,然后设置Δ值作为用于给定单元的CPBRD值。用于给定单元的Δ值指示用于给定单元的CPBRD值与解码顺序中在前图片的CPBRD值之间的差。编码器用信号将Δ值表示为用于给定单元的CPBRD值(例如,在BPSEI消息中)。编码器还设置另一个用于给定单元的CPBRD值。对于第一种类型的CPBRD值,另一个CPBRD值指示相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。对于第二种类型的CPBRD值,用于给定单元的另一个CPBRD值是无效的。编码器用信号通知用于给定单元的另一个CPBRD值(例如,在BP SEI消息中)。
编码器可以在逐单元的基础上(例如,逐个图片的基础上)重复技术(1200)。为了简洁起见,图12没有显示技术(1200)是如何与其他编码过程相结合运行的。
图13示出了在设置图片的CPBRD值时,用于在编码期间根据单值法设置CPBRD值的示例技术(1300)。由如上文参见图3所述的视频编码器或其他视频编码器执行该技术(1300)。
开始时,编码器在视频序列中获取(1310)当前图片。编码器检查(1320)当前图片是否具有BP SEI消息。如果没有,编码器将PT SEI消息中用于当前图片的CPBRD设置(1360)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
另一方面,如果当前图片具有BP SEI消息,编码器(1330)设置当前图片的BP SEI消息中的concatenation_flag值。根据标志(1340)的值,编码器能够以不同的方式设置当前图片的CPBRD值。如果标志等于1,编码器将PT SEI消息中当前图片的CPBRD值设置(1350)为相对于在解码顺序中无论是否具有BP SEI消息的在前图片的标称CPB清除时间的增量值。否则(标志等于0),编码器将PT SEI消息中用于当前图片的CPBRD值设置(1360)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
编码器检查(1370)其是否完成,如果否,将下一张图片作为当前图片继续进行。为了简洁起见,图13没有显示技术(1300)是如何与其他编码过程相结合运行的。
图14示出了解码期间用于处理CPBRD值的一般性技术(1400)。由如上文参见图4所述的视频解码器或其他视频解码器执行该技术(1400)。
编码器接收(1410)用于视频序列的给定单元的CPBRD值。例如,给定单元是用于具有BP SEI消息并且可以是随机存取图片的图片的存取单元。或者,给定单元是用于这种图片的一部分的解码单元。用于给定单元的CPBRD值指示相对于解码顺序中的在前图片的标称CPB清除时间的增量值,无论该在前图片是否具有BP SEI消息。在一些实施方式中,在前图片在解码顺序中直接在给定单元(或者包括给定单元的图片)之前。另选地,在处于与给定单元相同的时间子层或者处于较低时间子层的视频序列的图片之中,在前图片在解码顺序中直接在给定单元(或者包括给定单元的图片)之前。例如,当考虑到时间子分层时,如果当前图片的Temporalld等于0,在前图片是Temporalld等于0的在前图片。
解码器解析(1420)给定单元的CPBRD值。例如,CPBRD值从BP SEI消息或者与编码图片的存取单元相关联的PT SEI消息中解析。
在一些变化(例如,双值法)中,解码器可能接收并解析给定单元的多个CPBRD值,这应根据不同的约定进行解释。例如,除了设置成相对于在解码顺序中的在前图片(无论该在前图片是否具有BP SEI消息)的标称CPB清除时间的增量值的CPBRD值,解码器接收并解析给定单元的另一个CPBRD值(例如,来自给定单元的PT SEI消息)。用于给定单元的另一个CPBRD值指示相对于解码顺序中的具有BP SEI消息的在前图片的标称CPB清除时间的增量值。解码器还可以接收和解析一个或多个对每个CPBRD值分别是否存在或不存在的指示。或者,解码器可以接收和解析一个或多个对每个CPBRD值分别是否有效或无效的指示。
在其他变化(例如,单值法)中,编码器接收并解析对给定单元的CPBRD值的类型的指示。例如,CPBRD值的类型的指示是从给定单元或包括给定单元的图片的BP SEI消息中解析。对CPBRD值的类型的指示指示了如何解释用于给定单元的CPBRD值,该指示可以从PTSEI消息中解析。例如,解码器接收和解析对用于视频序列的给定单元的CPBRD值的类型的指示,然后接收和解析用于给定单元的CPBRD值。对于第一种类型的CPBRD值,用于给定单元的CPBRD值指示相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。对于第二种类型的CPBRD值,用于给定单元的CPBRD值指示相对于在解码顺序中的在前图片(无论该在前图片是否具有BP SEI消息)的标称CPB清除时间的增量值。
在又其他的变化(例如,使用标志和Δ值的双值法)中,解码器接收和解析对给定单元的CPBRD值的类型的指示,并接收和解析用于给定单元的、代表Δ值的CPBRD值。例如,CPBRD值的类型的指示和CPBRD值(Δ值)是从给定单元或包括给定单元的图片的BP SEI消息中解析。根据CPBRD值的类型,用于给定单元的CPBRD值可从PT SEI消息中解析。例如,解码器接收和解析对用于视频序列的给定单元的CPBRD值的类型的指示,并将Δ值作为给定单元的CPBRD值进行接收和解析(例如,从BP SEI消息中进行)。用于给定单元的Δ值指示用于给定单元的CPBRD值与解码顺序中在前图片的CPBRD值之间的差。解码器还接收和解析用于给定单元的另一个CPBRD值(例如,从PT SEI消息中)。在有效时,用于给定单元的另一个CPBRD值指示相对于解码顺序中的具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
在解析了给定单元的CPBRD值之后,解码器可以利用该CPBRD值。例如,至少部分地基于用于给定单元的CPBRD值,解码器可以根据CPB为给定单元计算出标称清除时间。
解码器可以在逐帧的基础上(例如,逐个图片的基础上)重复技术(1400)。为了简洁起见,图14没有显示技术(1400)是如何与其他解码过程相结合运行的。
图15示出了在设置图片的CPBRD值时,用于在解码期间根据单值法确定CPBRD值的示例技术(1500)。由如上文参见图4所述的视频解码器或其他视频解码器执行该技术(1500)。
开始时,解码器在视频序列中获取(1510)当前图片。解码器检查(1520)当前图片是否具有BP SEI消息。如果否,解码器将PT SEI消息中用于当前图片的CPBRD值解释(1560)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
另一方面,如果当前图片具有BP SEI消息,解码器(1530)在当前图片的BP SEI消息中获得concatenation_flag值。根据标志(1540)的值,解码器能够以不同的方式解释当前图片的CPBRD值。如果标志等于1,编码器将PT SEI消息中用于当前图片的CPBRD值解释(1550)为相对于解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。否则(标志等于0),解码器将PT SEI消息中用于当前图片的CPBRD值解释(1560)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
解码器检查(1570)其是否完成,如果否,将下一张图片作为当前图片继续进行。为了简洁起见,图15没有显示技术(1500)是如何与其他解码过程相结合运行的。
图16示出了用于拼接比特流的一般性技术(1600)。视频拼接工具执行该技术(1600)。
拼接工具接收(1610)用于第一视频序列的第一比特流,并也接收(1620)用于第二视频序列的第二比特流。用于第二视频序列的给定单元的CPBRD值指示相对于解码顺序中的在前图片的标称CPB清除时间的增量值,无论该在前图片是否具有BP SEI消息。
拼接工具将第二视频序列的至少一部分拼接(1630)到第一视频序列。作为拼接的一部分,拼接工具从给定单元或包括给定单元的图片开始,将第二视频序列级联到第一视频序列。例如,拼接工具将给定单元或包括给定单元的图片的BP SEI消息(其中,BP SEI消息包括对给定单元的CPBRD值的类型的指示以及在一些变化中,给定单元的第一CPBRD值)和PT SEI消息(其中,PT SEI消息包括用于给定单元的CPBRD值或,在一些变化中,给定单元的第二CPBRD值)级联。
在一些实施方式中,用于给定单元的第二CPBRD值(例如在PT SEI消息中)指示相对于解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。在这种情况下,作为拼接的一部分,拼接工具可以抛弃给定单元的另一个、第二CPBRD,或者将给定单元的另一个、第二CPBRD标记为无效。
图17示出了在设置图片的CPBRD值时,用于在编码期间根据使用标记和Δ值的双值法设置CPBRD值的示例技术(1700)。由如上文参见图3所述的视频编码器或其他视频编码器执行该技术(1700)。
开始时,编码器在视频序列中获取(1710)当前图片。编码器检查(1720)当前图片是否具有BP SEI消息。如果否,编码器将PT SEI消息中用于当前图片的CPBRD值设置(1760)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
另一方面,如果当前图片具有BP SEI消息,编码器设置(1730)当前图片的BP SEI消息中的concatenation_flag值。根据标志(1740)的值,编码器能够以不同的方式设置当前图片的CPBRD值。
如果标志等于1,由于PT SEI消息中的当前图片的CPBRD值将被忽略,编码器将PTSEI消息中当前图片的CPBRD值设置(1750)成具有任何值。在BP SEI消息中的当前图片的CPBRD值(Δ值)将被解释为相对于解码顺序中在前图片的标称CPB清除时间的增量值。
否则(标志等于0),编码器检查(1742)解码顺序中的在前图片是否具有BP SEI消息。如果是,编码器对当前图片的BT SEI消息中的CPBRD值进行设置(1744),从而使在其PTSEI消息中的当前图片的CPBRD值等于当前图片的BP SEI消息中的CPBRD值加1。如果否(在前图片没有BP SEI消息),编码器对当前图片的BT SEI消息中的CPBRD值进行设置(1746),从而使在其PT SEI消息中的当前图片的CPBRD值等于在其PT SEI消息中在前图片的CPBRD值加上当前图片的BP SEI消息中的CPBRD值(Δ值)再加上1。编码器还将PT SEI消息中用于当前图片的CPBRD值(1760)设置为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
编码器检查(1770)其是否完成,如果否,将下一张图片作为当前图片继续进行。为了简洁起见,图17没有显示技术(1700)是如何与其他编码过程相结合运行的。
图18示出了在设置图片的CPBRD值时,用于在解码期间根据使用标记和Δ值的双值法确定CPBRD值的示例技术(1800)。由如上文参见图4所述的视频解码器或其他视频解码器执行该技术(1800)。
开始时,解码器在视频序列中获取(1810)当前图片。解码器检查(1820)当前图片是否具有BP SEI消息。如果否,解码器将PT SEI消息中用于当前图片的CPBRD值解释(1860)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
另一方面,如果当前图片具有BP SEI消息,解码器获得(1830)当前图片的BP SEI消息中的concatenation_flag值。根据标志的值(1840),解码器能够以不同的方式解释当前图片的CPBRD值,或者甚至忽略当前图片的CPBRD值。
如果标志等于1,解码器忽略(1850)PT SEI消息中当前图片的CPBRD值。在BP SEI消息中的当前图片的CPBRD值(Δ值)被解释为相对于解码顺序中在前图片的标称CPB清除时间的增量值。
否则(标志等于0),解码器检查(1842)在前图片是否具有BP SEI消息。如果是,解码器可以验证(1844)在其PT SEI消息中的当前图片的CPBRD值等于当前图片的BP SEI消息中的CPBRD值加1。如果否(在前图片没有BP SEI消息),解码器可以验证(1846)在其PT SEI消息中的当前图片的CPBRD值等于在PT SEI消息中在前图片的CPBRD值加上在BP SEI消息中的当前图片的CPBRD值(Δ值)再加上1。解码器还将PT SEI消息中用于当前图片的CPBRD值解释(1860)为相对于在解码顺序中具有BP SEI消息的在前图片的标称CPB清除时间的增量值。
解码器检查(1870)其是否完成,如果否,将下一张图片作为当前图片继续进行。为了简洁起见,图18没有显示技术(1800)是如何与其他解码过程相结合运行的。
H.变型和替代
具体实施方式包括许多用于SEI消息的语法和语义示例。在一些情况下,这些示例一般会遵循在H.264/AVC和/或HEVC标准中使用的SEI消息的形式。更一般地,术语“SEI消息”或“VUI消息”指示与传达至少一些信息(相当于本文所描述的示例SEI或VUI消息的(多个)语法结构中携带的信息)的编码视频数据相关联的语法元素的任何集,无论这种语法元素是否都使用所引用的H.264/AVC标准或HEVC标准中指定的SEI或VUI语法来进行信号通知、以编码视频比特流内的其他语法来进行信号通知、或者通过一些其他手段来进行信号通知。
鉴于所公开的发明的原理可能会应用到多个可能的实施例上,应认识到,所示出的实施例仅是本发明的优选示例,而不应被视为对本发明范围的限制。相反,本发明的范围由以下权利要求限定。因此,我们要求保护作为我们的发明的所有落入这些权利要求的范围和精神的方案。
Claims (10)
1.一种计算设备,包括:
视频编码器,被配置为执行对视频序列的视频进行编码的操作,所述操作包括:
为所述视频序列的当前图片设置用于给定存取单元的编码图片缓冲区清除延迟CPBRD增量值,所述当前图片具有与所述当前图片相关联的缓冲周期SEI消息;
为给定存取单元设置标志的值,其中:
如果标志的值是第一值,那么用于给定存取单元的图片定时SEI消息中的CPBRD值指示指定当前图片相对于解码顺序中第一在先图片的标称编码图片缓冲区CPB清除时间的标称CPB所述第一在先图片具有与所述第一在先图片相关联的缓冲周期SEI消息;以及
如果标志的值是第二值,则当前图片的标称CPB清除时间由CPBRD增量值指示为相对于解码顺序中的第二在先图片的标称CPB清除时间的增量值;以及
在与当前图片相关联的缓冲周期SEI消息中用信号通知用于所述给定存取单元的CPBRD增量值和标志的值;以及
缓冲器,被配置为存储编码的视频以用于输出。
2.根据权利要求1所述的计算设备,其中所述CPBRD增量值在与所述当前图片相关联的所
述缓冲周期SEI消息中作为代表CPBRD增量值减去1的语法元素进行信号通知。
3.根据权利要求1所述的计算设备,其中所述第二在先图片在解码顺序中紧接在所述当前图片之前。
4.根据权利要求1所述的计算设备,其中,所述当前图片是随机存取图片,并且其中所述用信号通知所述CPBRD增量值和所述标志的值通过改变所述标志的值而有利于在所述随机存取图片处开始的拼接。
5.如权利要求1所述的计算设备,其中,所述编码还包括:
设置给定存取单元的CPBRD值;以及
将图片定时SEI消息中的给定存取单元的CPBRD值作为代表另一个CPBRD值减去1的语法元素进行信号通知。
6.在计算设备中,一种方法,包括:
接收用于视频序列的编码视频,包括
接收用于所述视频序列的当前图片的用于给定存取单元的编码图片缓冲区清除延迟CPBRD增量值,所述当前图片具有与所述当前图片相关联的缓冲周期SEI消息;
接收用于给定存取单元的标志的值,其中:
如果标志的值是第一值,那么用于给定存取单元的图片定时SEI消息中的CPBRD值指示指定当前图片相对于解码顺序中第一在先图片的标称编码图片缓冲区CPB清除时间的标称CPB,所述第一在先图片具有与所述第一在先图片相关联的缓冲周期SEI消息;以及
如果标志的值是第二值,则当前图片的标称CPB清除时间由CPBRD增量值指示为相对于解码顺序中的第二在先图片的标称CPB清除时间的增量值;以及
对编码视频进行解码,包括从与当前图片相关联的缓冲周期SEI消息解析给定存取单元的CPBRD增量值和标志的值。
7.根据权利要求6所述的方法,其中所述接收编码视频进一步包括:
接收针对给定存取单元的CPBRD值,其作为代表CPBRD值减1的语法元素在给定存取单元的图片定时SEI消息中进行信号通知;以及
通过将给定存取单元的CPBRD值与基于第二在先图片的CPBRD值和给定存取单元的CPBRD增量值的和进行比较来检测数据的丢失。
8.一种存储计算机可执行指令的计算机可读介质,所述计算机可执行指令用于使计算
设备在被其编程时执行操作,所述计算机可读介质选自由易失性存储器、非易失性存储器、磁盘、CD-ROM和DVD组成的组中,所述操作包括:
接收第一视频序列的至少部分第一比特流;
接收包括当前图片的第二视频序列的至少部分第二比特流,所述当前图片具有与其相关联的缓冲周期SEI消息,所述缓冲周期SEI消息包括:
用于当前图片的给定存取单元的编码图片缓冲区清除延迟CPBRD增量值;以及
给定存取单元的标志的值,其中:
如果标志的值是第一值,那么用于给定存取单元的图片时序SEI消息中的CPBRD值指示指定当前图片相对于标称值的标称编码图片缓冲区CPB移除时间的增量值以解码顺序的第一在先图片的CPB移除时间,第一在先图片具有与第一在先图片相关联的缓冲时段SEI消息;以及
如果标志的值是第二值,则当前图片的标称CPB移除时间由CPBRD增量值指示为相对于解码顺序中的第二在先图片的标称CPB移除时间的增量值;和
如果标志的值是第一值,那么用于给定存取单元的图片定时SEI消息中的CPBRD值指示指定当前图片相对于解码顺序中第一在先图片的标称CPB清除时间的标称编码图片缓冲区CPB,所述第一在先图片具有与所述第一在先图片相关联的缓冲周期SEI消息;以及
如果标志的值是第二值,则当前图片的标称CPB清除时间由CPBRD增量值指示为相对于解码顺序中的第二在先图片的标称CPB清除时间的增量值;以及
在与当前图片相关联的缓冲周期SEI消息中用信号通知用于所述给定存取单元的CPBRD增量值和标志的值;以及
将所述第二视频序列的至少一部分拼接到所述第一视频序列的至少一部分,其中所述拼接包括从所述给定存取单元开始将所述第二视频序列的至少一部分级联到所述第一视频序列的至少一部分。
9.如权利要求8所述的计算机可读介质,其中所述操作还包括:
作为拼接的一部分,通过将标志的值设置为第二值,将给定存取单元的图片定时SEI消息中的CPBRD值标记为无效。
10.根据权利要求8所述的计算机可读介质,其中级联所述第二视频序列的至少一部分包括:
级联与当前图片相关联的缓冲定时SEI消息;以及
级联所述图片定时SEI消息,其中所述图片定时SEI消息包括用于给定存取单元的所述CPBRD值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361749909P | 2013-01-07 | 2013-01-07 | |
US61/749909 | 2013-01-07 | ||
US14/109670 | 2013-12-17 | ||
US14/109,670 US9661341B2 (en) | 2013-01-07 | 2013-12-17 | Syntax and semantics for buffering information to simplify video splicing |
PCT/US2014/010393 WO2014107691A1 (en) | 2013-01-07 | 2014-01-07 | Syntax and semantics for buffering information to simplify video splicing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105027570A CN105027570A (zh) | 2015-11-04 |
CN105027570B true CN105027570B (zh) | 2019-07-02 |
Family
ID=51060939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480012657.8A Active CN105027570B (zh) | 2013-01-07 | 2014-01-07 | 用来简化视频拼接的缓冲信息的语法和语义 |
Country Status (13)
Country | Link |
---|---|
US (11) | US9661341B2 (zh) |
EP (1) | EP2941880B1 (zh) |
JP (1) | JP6312704B2 (zh) |
KR (1) | KR102179360B1 (zh) |
CN (1) | CN105027570B (zh) |
AR (1) | AR094382A1 (zh) |
AU (1) | AU2014203924B2 (zh) |
BR (1) | BR122022001553B1 (zh) |
CA (1) | CA2897039C (zh) |
MX (1) | MX356482B (zh) |
RU (1) | RU2659748C2 (zh) |
TW (1) | TW201436526A (zh) |
WO (1) | WO2014107691A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6019824B2 (ja) * | 2012-07-02 | 2016-11-02 | 富士通株式会社 | 動画像符号化装置及び動画像符号化方法ならびに動画像符号化用コンピュータプログラム |
US9351005B2 (en) | 2012-09-24 | 2016-05-24 | Qualcomm Incorporated | Bitstream conformance test in video coding |
US9661341B2 (en) | 2013-01-07 | 2017-05-23 | Microsoft Technology Licensing, Llc | Syntax and semantics for buffering information to simplify video splicing |
US9418469B1 (en) * | 2013-07-19 | 2016-08-16 | Outward, Inc. | Generating video content |
EP3116230B1 (en) * | 2014-03-07 | 2019-05-08 | Sony Corporation | Method and apparatus for splicing in a compressed video bitstream |
AU2014202682A1 (en) * | 2014-05-16 | 2015-12-03 | Canon Kabushiki Kaisha | Method, apparatus and system for copying a block of video samples |
US9955159B2 (en) * | 2014-10-31 | 2018-04-24 | Google Llc | Multi-video decoding with input switching |
US10116576B2 (en) * | 2015-10-19 | 2018-10-30 | Samsung Electronics Co., Ltd. | Methods and apparatus for random access of HEVC bitstream for MMT |
US10575007B2 (en) | 2016-04-12 | 2020-02-25 | Microsoft Technology Licensing, Llc | Efficient decoding and rendering of blocks in a graphics pipeline |
US10390071B2 (en) * | 2016-04-16 | 2019-08-20 | Ittiam Systems (P) Ltd. | Content delivery edge storage optimized media delivery to adaptive bitrate (ABR) streaming clients |
US10157480B2 (en) | 2016-06-24 | 2018-12-18 | Microsoft Technology Licensing, Llc | Efficient decoding and rendering of inter-coded blocks in a graphics pipeline |
CN107770565A (zh) * | 2016-08-15 | 2018-03-06 | 联发科技股份有限公司 | 低延迟视频编码的装置与方法 |
US11197010B2 (en) | 2016-10-07 | 2021-12-07 | Microsoft Technology Licensing, Llc | Browser-based video decoder using multiple CPU threads |
US10326815B2 (en) * | 2016-12-20 | 2019-06-18 | LogMeln, Inc. | Techniques for scalably sharing video through a streaming server |
US11665220B2 (en) * | 2018-10-12 | 2023-05-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Monitoring and surveillance system arranged for processing video data associated with a vehicle, as well as corresponding devices and method |
CN109547708A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种合成视景图像处理系统 |
CN118450147A (zh) * | 2019-06-18 | 2024-08-06 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法和解码方法 |
US12022122B2 (en) * | 2019-06-19 | 2024-06-25 | Sharp Kabushiki Kaisha | Systems and methods for signaling decoded picture buffer information in video coding |
JP7403245B2 (ja) * | 2019-06-21 | 2023-12-22 | キヤノン株式会社 | 画像復号装置、画像復号方法 |
JP7323099B2 (ja) * | 2019-09-24 | 2023-08-08 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | マルチレイヤビデオビットストリームのためのdpbパラメータのシグナリング |
CN110996063A (zh) * | 2019-12-16 | 2020-04-10 | 武汉武钢绿色城市技术发展有限公司 | 一种监控画面上电视墙的装置及系统 |
EP4144093A4 (en) | 2020-05-22 | 2023-08-23 | ByteDance Inc. | SIGNALING OF IMAGE INFORMATION IN ACCESS UNITS |
KR20220144241A (ko) * | 2021-04-19 | 2022-10-26 | 삼성전자주식회사 | 서버 및 그 제어 방법 |
US12101528B2 (en) * | 2022-12-08 | 2024-09-24 | Synamedia Limited | Client device switching to low latency content |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1871854A (zh) * | 2003-09-05 | 2006-11-29 | 康奈克森特系统公司 | 具有压缩图像与视频的低启动时延的假想参考解码器 |
CN101064515A (zh) * | 2007-04-18 | 2007-10-31 | 威盛电子股份有限公司 | 可增进译码效能的方法 |
CN101606389A (zh) * | 2007-01-08 | 2009-12-16 | 汤姆森特许公司 | 用于视频流拼接的方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5982436A (en) | 1997-03-28 | 1999-11-09 | Philips Electronics North America Corp. | Method for seamless splicing in a video encoder |
WO2004006446A2 (en) | 2002-07-02 | 2004-01-15 | Conexant Systems, Inc. | Hypothetical reference decoder for compressed image and video |
US20050201471A1 (en) | 2004-02-13 | 2005-09-15 | Nokia Corporation | Picture decoding method |
US20060002479A1 (en) | 2004-06-22 | 2006-01-05 | Fernandes Felix C A | Decoder for H.264/AVC video |
JP2008536420A (ja) * | 2005-04-13 | 2008-09-04 | ノキア コーポレイション | スケーラビリティ情報の符号化、格納およびシグナリング |
JP4311570B2 (ja) * | 2005-07-01 | 2009-08-12 | 株式会社ソニー・コンピュータエンタテインメント | 再生装置、ビデオ復号装置および同期再生方法 |
US8335266B2 (en) | 2007-06-29 | 2012-12-18 | Cisco Technology, Inc. | Expedited splicing of video streams |
JP4577357B2 (ja) * | 2007-12-27 | 2010-11-10 | ソニー株式会社 | 符号化装置及び方法、並びにプログラム |
WO2009152450A1 (en) * | 2008-06-12 | 2009-12-17 | Cisco Technology, Inc. | Picture interdependencies signals in context of mmco to assist stream manipulation |
US20100167689A1 (en) * | 2008-07-07 | 2010-07-01 | Hossein Alexander Sepehri-Nik | Method and apparatus for determining whether a cellular phone chip is dormant |
US20100130136A1 (en) * | 2008-08-22 | 2010-05-27 | Hossein Alexander Sepehri-Nik | System and Method for Interpreting and Classifying Signals in Communications Systems |
US9083976B2 (en) * | 2008-09-05 | 2015-07-14 | Freescale Semiconductor, Inc. | Processing a video stream in real time based on binary information of the video stream |
JP5131101B2 (ja) * | 2008-09-09 | 2013-01-30 | 富士通株式会社 | 動画像編集装置および動画像編集プログラム |
EP2356812B1 (en) * | 2008-11-12 | 2015-06-10 | Cisco Technology, Inc. | Processing of a video program having plural processed representations of a single video signal for reconstruction and output |
US8743906B2 (en) | 2009-01-23 | 2014-06-03 | Akamai Technologies, Inc. | Scalable seamless digital video stream splicing |
JP5332773B2 (ja) * | 2009-03-18 | 2013-11-06 | ソニー株式会社 | 画像処理装置および方法 |
US9532055B2 (en) * | 2012-04-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Constraints and unit types to simplify video random access |
US9661341B2 (en) | 2013-01-07 | 2017-05-23 | Microsoft Technology Licensing, Llc | Syntax and semantics for buffering information to simplify video splicing |
US11899560B2 (en) * | 2022-04-27 | 2024-02-13 | Microsoft Technology Licensing, Llc | Automatic correctness validation of database management systems |
-
2013
- 2013-12-17 US US14/109,670 patent/US9661341B2/en active Active
- 2013-12-30 TW TW102149090A patent/TW201436526A/zh unknown
-
2014
- 2014-01-07 CN CN201480012657.8A patent/CN105027570B/zh active Active
- 2014-01-07 KR KR1020157021477A patent/KR102179360B1/ko active IP Right Grant
- 2014-01-07 BR BR122022001553-0A patent/BR122022001553B1/pt active IP Right Grant
- 2014-01-07 EP EP14704408.5A patent/EP2941880B1/en active Active
- 2014-01-07 RU RU2015127083A patent/RU2659748C2/ru active
- 2014-01-07 WO PCT/US2014/010393 patent/WO2014107691A1/en active Application Filing
- 2014-01-07 JP JP2015551816A patent/JP6312704B2/ja active Active
- 2014-01-07 AU AU2014203924A patent/AU2014203924B2/en active Active
- 2014-01-07 CA CA2897039A patent/CA2897039C/en active Active
- 2014-01-07 MX MX2015008797A patent/MX356482B/es active IP Right Grant
- 2014-01-07 AR ARP140100055A patent/AR094382A1/es active IP Right Grant
-
2017
- 2017-05-22 US US15/601,615 patent/US10313698B2/en active Active
-
2019
- 2019-06-03 US US16/430,087 patent/US11070832B2/en active Active
-
2021
- 2021-06-17 US US17/350,510 patent/US11451813B2/en active Active
-
2022
- 2022-08-18 US US17/890,425 patent/US11665361B2/en active Active
- 2022-09-16 US US17/946,149 patent/US11665362B2/en active Active
-
2023
- 2023-04-18 US US18/135,835 patent/US11943463B2/en active Active
- 2023-04-18 US US18/135,853 patent/US11943464B2/en active Active
-
2024
- 2024-02-15 US US18/442,948 patent/US20240276001A1/en active Pending
- 2024-04-26 US US18/647,524 patent/US20240283962A1/en active Pending
- 2024-04-26 US US18/647,431 patent/US20240283961A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1871854A (zh) * | 2003-09-05 | 2006-11-29 | 康奈克森特系统公司 | 具有压缩图像与视频的低启动时延的假想参考解码器 |
CN101606389A (zh) * | 2007-01-08 | 2009-12-16 | 汤姆森特许公司 | 用于视频流拼接的方法及装置 |
CN101064515A (zh) * | 2007-04-18 | 2007-10-31 | 威盛电子股份有限公司 | 可增进译码效能的方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105027570B (zh) | 用来简化视频拼接的缓冲信息的语法和语义 | |
US11770554B2 (en) | Conditional signalling of reference picture list modification information | |
KR102474461B1 (ko) | 코딩된 영역들의 완료를 나타내는 신택스 구조들 | |
CN105659606B (zh) | 用于视频和图像编码和解码的方法、系统和介质 | |
CN105432082B (zh) | 用于兴趣区编码的运动约束图块集合 | |
CN105917650B (zh) | 视频和图像编/解码的方法、计算设备及计算机可读介质 | |
CN107439008A (zh) | 减轻数字视频的互操作性情景中的损失 | |
BR112015016254B1 (pt) | Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação |
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 |