CN115968546A - 集成用于分层视频编码的编码器 - Google Patents
集成用于分层视频编码的编码器 Download PDFInfo
- Publication number
- CN115968546A CN115968546A CN202180050397.3A CN202180050397A CN115968546A CN 115968546 A CN115968546 A CN 115968546A CN 202180050397 A CN202180050397 A CN 202180050397A CN 115968546 A CN115968546 A CN 115968546A
- Authority
- CN
- China
- Prior art keywords
- encoder
- layer
- video signal
- encoding
- integration layer
- 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.)
- Pending
Links
- 230000010354 integration Effects 0.000 claims abstract description 181
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000015654 memory Effects 0.000 claims description 19
- 239000000284 extract Substances 0.000 claims description 5
- 238000005457 optimization Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 239000010410 layer Substances 0.000 description 231
- 230000006870 function Effects 0.000 description 40
- 239000002346 layers by function Substances 0.000 description 29
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种视频编码器,具有:一个或多个编码器插件,其为一个或多个相应基础编解码器提供包装器以实施基础编码层,每一包装器实施用于与对应基础编解码器进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码;增强编码器,其用以实施增强编码层,所述增强编码器被配置成:从所述一个或多个编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由所述一个或多个编码器插件中的所述一个产生的经编码视频信号的经解码版本,且针对所述经编码视频信号产生经编码增强信号,所述经编码增强信号包括残差数据的一个或多个层,所述残差数据基于从所述经解码视频信号导出的数据与从输入视频信号导出的数据的比较来产生;以及编码器集成层,其用以控制所述一个或多个编码器插件和所述增强编码器的操作以使用所述基础编码层和所述增强编码层产生所述输入视频信号的编码,其中所述编码器集成层为所述视频编码器提供控制接口。还提供了一种系统、方法和计算机可读介质。
Description
技术领域
本发明涉及用于使用分层编码格式以及编码器和编码系统对信号,例如视频信号进行编码的方法。本发明尤其涉及一种用于将分层编码器,优选地LCEVC编码器集成到应用程序或软件堆叠中的视频编码器。
背景技术
先前已经在例如WO 2014/170819和WO 2018/046940(其内容以引入的方式并入本文中)中提出了混合式后向兼容编码技术。基于层的编码格式的其它示例包含ISO/IECMPEG-5第2部分LCEVC(下文称为“LCEVC”)。LCEVC在WO/2020/188273A1和相关联标准规范文件中进行了描述,相关联标准规范文件包含在2020年1月13日星期一至2020年1月17日星期五在布鲁塞尔举行的MPEG 129会议上公布的ISO/IEC DIS 23094-2低复杂度增强视频编码草案,两份文件都以引用的方式全文并入本文中。
在这些编码格式中,信号被分解成多个数据“梯队”(也称为“分级层”),每一梯队对应于“质量层级”,从原始信号的采样率的最高梯队到最低梯队。最低梯队通常为原始信号的低质量再现且其它梯队含有关于应用于重构再现以便产生最终输出的校正的信息。
LCEVC采用此多层方法,其中可经由额外低位率流增强任何基础编解码器(例如,高级视频编码-AVC,也称为H.264或高效视频编码-HEVC,也称为H.265)。LCEVC由两个分量流定义:基础流,其通常可由硬件解码器解码;和增强流,其由适合于具有可持续功耗的软件处理实施方案的一个或多个增强层组成。所述增强为现有编解码器提供改进的压缩效率,并降低编码和解码复杂性。
由于LCEVC和类似编码格式充分利用现有解码器且本质上为后向兼容的,因此需要与现有视频编码实施方案进行高效且有效的集成而无需完全重新设计。已知编码实施方案的示例包含软件工具FFmpeg。
此外,LCEVC不限于已知编解码器且理论上能够充分利用尚待开发的编解码器。因而,任何LCEVC实施方案应能够与以硬件或软件实施的任何迄今已知或尚待开发的编解码器集成,而不会引入编码复杂性。
应注意,在这些编码格式的一些实现中,可在视频编码期间由基础编解码器执行编码和解码操作两者。也就是说,增强流可通过比较输入信号的版本与经编码基础流的经解码版本形成。因此,在这些实现中,需要在编码器处高效且有效地指示使用基础编解码器的编码和解码操作两者。
发明内容
本发明的各个方面和变化在所附权利要求中阐述。在下面的详细描述中进一步阐述了某些未要求保护的方面。
根据一个方面,提供有一种视频编码器,包括:一个或多个编码器插件,其为一个或多个相应基础编解码器提供包装器以实施基础编码层,每一包装器实施用于与对应基础编解码器进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码;增强编码器,其用以实施增强编码层,所述增强编码器被配置成:从一个或多个编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由一个或多个编码器插件中的所述一个产生的经编码视频信号的经解码版本,且针对经编码视频信号产生经编码增强信号,所述经编码增强信号包括残差数据的一个或多个层,残差数据基于从经解码视频信号导出的数据与从输入视频信号导出的数据的比较来产生;以及编码器集成层,其用以控制一个或多个编码器插件和增强编码器的操作以使用基础编码层和增强编码层产生输入视频信号的编码,其中编码器集成层为视频编码器提供控制接口。
优选地,增强编码器为LCEVC编码器,使得编码器集成层、一个或多个插件和增强编码器共同提供LCEVC编码软件堆叠。LECVC编码软件堆叠可实施于一个或多个LCEVC编码器库中且因此提供用于对MPEG-5增强流进行编码的优化软件库。
根据这一方面的视频编码器易于部署,也就是说,其可由广泛范围的编码和播放器供应商支持或经实施以易于更新系统。本发明的各方面提供在具有从低层级API到常用开源编码器和播放器中的实施方案的一系列选项的软件堆叠的任何层级处部署LCEVC的能力。
编码器集成层可被配置成:接收输入视频信号的帧的所有权;指示通过一个或多个编码插件和增强编码器对所述帧进行编码;以及在经由控制接口请求后将指针提供到输出数据的位置。以此方式,编码器集成层允许应用层在不干扰编码过程的情况下容易且简单地检索经编码数据。在优选实施方案中,与指针一起,编码器集成层可经由控制接口提供成功指示,从而允许用户或应用层标识数据已经成功地处理并且可在无复杂情况的情况下检索。另外,指针可提供于数据结构内,所述数据结构进一步包括与输入视频信号的编码相关联的辅助信息。在某些实施方案中,可仅对数据结构进行读取。有益的是,数据结构允许应用程序不必手动创建。辅助信息可包含经编码视频帧的所有信息,例如帧类型、数据长度、所使用的量化参数、时戳信息、配置旗标或用户数据信息。
编码器集成层可任选地进一步被配置成针对待编码的帧的类型从输入视频信号的帧创建数据结构,所述数据结构包括共同构成所述帧的平面集;且使用来自输入视频信号的帧的帧数据填充所述平面。每一帧的平面可为例如YUV且通常与待编码的帧的类型相关联。因此,编码器集成层提供内部输入模式,其中应用层仅需要将帧提供到所述层以执行编码。
另外或替代地,编码器集成层可进一步被配置成标识帧被外部分配且检索数据结构,其包括共同构成输入视频信号的帧的平面集和对所述帧进行编码所必需的参数集。因此,应用层还可提供待外部分配的输入,使得用户可指定帧的填充。数据结构可不存在对所述帧进行编码所必需的参数且编码器集成可填充此类字段。编码器集成层可标识帧在初始化期间被外部分配。对所述帧进行编码所必需的参数的示例包含平面的数目、帧类型和时戳信息。
在某些实施例中,编码器集成层可被配置成获得编码属性的集合,并且在编码器集成层的初始化后,经由控制接口,根据编码属性确认成功初始化。编码属性可例如包含分辨率、帧率和位率且可包括在作为编码器实施层的初始化的部分发送到控制接口的对象中,使得编码器集成层准备好接收帧。
编码器集成层可被配置成接收编码属性的另一集合且指示使用一个或多个编码器插件重新配置基础编码器层。重新配置可在视频处理期间发生。以此方式,可动态地重新配置编码属性,例如目标位率或帧率,其中基础编码器也支持动态重新配置。
在某些实施例中,控制接口可使用只读和可写属性的组合提供配置系统。所述接口允许将可经由应用程序编程接口(API)调用存取的属性高效传送到编码器集成层。
在配置接口的第一示例中,编码器集成层被配置成:获得配置默认值的集合;检索包括一个或多个配置属性的配置数据结构;以及覆写对应于所述一个或配置属性的配置默认值集合中的配置默认值。也就是说,可使用相应配置属性覆写配置默认值。配置数据结构可为经由控制接口传送的字符串或JavaScript对象标记(JSON)字符串。
在配置接口的第二示例中,控制接口包括预定义查询的集合,其中编码器集成层被配置成从预定义查询集合接收查询且返回编码器集成层的对应编码或配置属性。以此方式,可使用于基础编码器和LCEVC增强的编码配置属性公开可用并且可经由API,即控制接口查询。查询可返回所有属性群组的阵列,每一属性群组含有所述群组中的所有属性的阵列。替代地,如果参数的名称已知,那么可直接查询参数的名称。
在配置接口的第三示例中,控制接口包括预定义元数据查询的集合,所述编码器集成层被配置成接收针对一个或多个元数据属性的查询,其中所述编码器集成层被配置成从一个或多个编码器插件检索元数据且返回对应于一个或多个元数据属性的只读元数据属性。可因此防止元数据被外部设置,但可由用户或应用层经由控制接口存取。元数据可涉及一个或基础代码或增强编码器,例如元数据属性可包含全局标头和形状或基础编解码器的类型。
更优选地,控制接口可包括预定义元数据查询的集合,且其中编码器集成层可被配置成接收针对一个或多个元数据属性的查询,且所述编码器集成层可被配置成从一个或多个编码器插件检索元数据且响应于所述查询返回存储元数据的存储器块的位置。所述块可为相邻的。以此方式,视频编码器可并有基础编码器插件以将元数据呈现给用户,而对其用途一无所知。此方法可用于允许编码器集成层向用户报告一些内部值,或未解译为属性或无法表达为属性的数据。举例来说,H.264全局标头可由用户或应用层从存储器存取。
此外,控制接口可提供预定优化指令的集合,且其中编码器集成层可被配置成接收预定指令中的一个或多个且根据对应于接收到的指令的预定义变型优化一个或多个编码器插件和增强编码器的操作。控制接口可因此向用户提供用以例如根据编码目标‘调谐’预定参数的编码使用集合的机制。在某些其它示例中,可针对峰值信噪比(PSNR)使用预定参数集合优化编码以达成目标,而控制接口不必指定那些参数的特定调整。
根据另一方面,可提供一种对视频信号进行编码的方法。所述方法可利用根据以上方面中的任一者的视频编码器。优选地,所述方法提供用于使用如上文所阐述的编码器集成层对流进行编码的步骤。所述方法可包括:初始化编码器集成层;当存在输入视频信号的待编码帧时:检索输入视频信号的输入帧并经由控制接口将所述帧的所有权传递到视频编码器;等待视频编码器对输入帧进行编码并随后提取输出数据;以及将输出数据的所有权释放回到编码器集成层并关闭编码器集成层。
在某些实施例中,根据以上方面中的任一者的编码器集成层的集成方法可包括以下步骤:创建编码器集成层;初始化编码器集成层;将输入视频信号传递到编码器集成层;从编码器集成层提取经编码位流;稍后刷新编码器集成;以及销毁编码器集成层。
根据本发明的其它方面,视频编码器和方法可由包括指令的计算机可读介质提供,所述指令在由处理器执行时使得处理器执行视频编码器的功能性或实行所述方法的步骤。
根据另一方面,可提供一种视频编码系统,包括:根据以上方面中的任一者的视频编码器;一个或多个基础编解码器;以及应用层,其经由控制接口将一个或多个调用提供到视频编码器以指示视频编码。应用层还可被视为功能层且可提供于软件堆叠的任何层级处。一个或多个基础编解码器可与如以上方面中的任一者中所阐述的为基础编解码器提供包装器的编码器插件相关联。一个或多个基础编解码器的示例包含例如AVC、HEVC、VP9、EVC、AV1且可以本领域中常见的软件或硬件实施。
在某些实施方案中,应用层或功能层可被配置成经由本发明的第一方面的控制接口:初始化编码器集成层;当存在输入视频信号的待编码帧时:检索输入视频信号的输入帧并经由控制接口将所述帧的所有权传递到视频编码器;等待视频编码器对输入帧进行编码并随后提取输出数据;以及将输出数据的所有权释放回到编码器集成层并关闭编码器集成层。以此方式,编码器集成层连同合适配置的功能层一起与简单但强大的API通信。
根据本发明的另一方面,可提供一种控制一个或多个编码器插件和增强编码器的操作以使用基础编码层和增强编码层产生输入视频信号的编码的编码器集成层,其中所述编码器集成层为视频编码器提供控制接口,其中一个或多个编码器插件为一个或多个相应基础编解码器提供包装器以实施基础编码层,每一包装器实施用于与对应基础编解码器进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码;且增强编码器实施增强编码层,所述增强编码器被配置成:从一个或多个编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由一个或多个编码器插件中的所述一个产生的经编码视频信号的经解码版本,且针对经编码视频信号产生经编码增强信号,所述经编码增强信号包括残差数据的一个或多个层,残差数据基于从经解码视频信号导出的数据与从输入视频信号导出的数据的比较来产生。
所述编码器集成层还可将控制接口提供到一个或多个插件,使得用于基础编解码器的额外包装器可与编码器集成层集成。
根据另一说明性方面,提供有一种用于对输入数据进行编码的编码器,其中输入数据经编码成分层结构中的多个数据层,其中所述多个层包含基础层数据和至少一个增强层数据,其中所述至少一个增强层数据可用以将第一质量层级处的基础层数据的再现增强为第二质量层级处的增强再现,所述第二质量层级高于所述第一质量层级,其特征在于所述编码器包含用于产生基础层数据的基础功能布置(例如,基础编解码器或编码器/解码器)和用于产生至少一个增强层数据的增强层布置(例如,增强编码器),其中所述编码器进一步包含使用软件实施以介接于基础功能布置与增强层布置之间的插件系统(例如,一个或多个编码器插件)和用于执行可执行于计算硬件上以用于控制编码器的操作的一个或多个软件应用程序的应用层布置;其中所述编码器进一步包含用于在增强层布置与基础功能布置之间传送数据时调适或选择插件系统的一个或多个插件以使用的编排单元(例如,编码器集成层);且其中所述编排单元在处于操作中时经由插件系统重新配置解码器以至少适应基础功能布置和增强层布置的操作特性的改变。
任选地,在编码器中,所述编排单元(例如,编码器集成层)在处于操作中时监测基础功能布置和增强层布置的操作特性的改变,且依据操作特性的改变重新配置插件系统(例如,一个或多个编码器插件)。
任选地,在编码器中,所述编排单元(例如,编码器集成层)在操作中经布置以将测试数据应用于基础功能布置和增强层布置来确定其操作特性,且依据操作特性实施插件系统(例如,一个或多个编码器插件)的选择或调适。更任选地,在编码器中,使用以下中的至少一个实施选择或调适:机器学习、人工智能(AI)算法。任选地,对于人工智能(AI)算法,采用一个或多个递归神经网络(RNN);递归神经网络(RNN)为通过在结构化输入上递归地应用同一给定权重集合创建的一类深度神经网络,以通过按拓扑次序遍历给定结构而对可变大小输入结构产生结构化预测或对其产生标量预测。举例来说,在自然语言处理中的学习序列和树结构中,RNN已经成功。应了解,一般来说,API具有预定结构;如果编译程序能够理解所述API,那么RNN也能够学习适应所述API。
任选地,在编码器中,应用层布置可通过增强功能更新,所述增强功能提供待由解码器提供的额外功能性。
任选地,在编码器中,基础功能布置实施遵守行业公认的编码标准(例如,AVC、H264、H265、MPEG2、MPEG4、MPEG5、LCEVC、VC-6等等)的基础层解码器。
根据另一说明性方面,提供有一种用于控制用于对输入数据进行编码的编码器的操作的方法(即控制用于对输入数据进行编码的编码器的操作的方法),其中输入数据经编码成分层结构中的多个数据层,其中所述多个层包含基础层数据和至少一个增强层数据,其中所述至少一个增强层数据可用以将第一质量层级处的基础层数据的再现增强为第二质量层级处的增强再现,所述第二质量层级高于所述第一质量层级,其特征在于所述方法进一步包含:(a)布置编码器以包含用于产生基础层数据的基础功能布置(例如,基础编码器或编码器/解码器)和用于产生至少一个增强层数据的增强层布置(例如,增强编码器);(b)布置编码器以包含使用软件实施以介接于基础功能布置与增强层布置之间的插件系统(例如,一个或多个编码器插件)和用于执行可执行于计算硬件上以用于控制编码器的操作的一个或多个软件应用程序的应用层布置;(c)布置编码器以包含用于在增强层布置与基础功能布置之间传送数据时调适或选择插件系统的一个或多个插件以使用的编排单元(例如,编码器集成层);以及(d)布置编排单元以在处于操作中时经由插件系统重新配置解码器以至少适应基础功能布置和增强层布置的操作特性的改变。
附图说明
现在将参考附图描述根据本发明的系统和方法的示例,在附图中:
图1展示多层编码过程的已知高级示意图;
图2展示根据本公开的示例的软件堆叠的示意图;
图3展示编码器集成层的功能性的流程图;且,
图4展示编码器集成层的使用的流程图。
具体实施方式
本公开描述用于集成混合式后向兼容编码技术与现有编码器和解码器,任选地经由软件更新的实施方案。在非限制性示例中,本公开涉及MPEG-5第2部分低复杂度增强视频编码(LCEVC)的实施方案和集成。LCEVC是一种混合式后向兼容编码技术,其为灵活、可调适、高效且计算成本低的编码格式,其将不同视频编码格式、基础编解码器(即,编码器-解码器)(例如,AVC/H.264、HEVC/H.265,或任何其它当前或将来的编解码器,以及例如VP9、AV1等非标准算法)与一个或多个增强层级的经编码数据组合。
示例混合式后向兼容编码技术使用使用基础编解码器编码以形成基础流的经下采样源信号。使用例如通过提高分辨率或通过提高帧率校正或增强基础流的残差的经编码集合来形成增强流。分层结构中可存在多个层级的增强数据。在某些布置中,基础流可由硬件解码器解码,而增强流可适合于使用软件实施方案处理。因此,流被视为基础流和一个或多个增强流,其中通常存在两个增强流。值得注意的是,通常基础流可由硬件解码器解码,而增强流可适合于具有合适功耗的软件处理实施方案。
相较于在MPEG算法系列中使用基于块的方法,以分层方式对视频帧进行编码。以分层方式对帧进行编码包含针对全帧产生残差,且接着针对缩减或抽取帧产生残差,等。
仅出于上下文目的,因为LCEVC的详细结构是已知的且在批准的草案标准规范中陈述,所以图1说明LCEVC如何在编码侧上操作,假设H.264作为基础编解码器。所属领域的技术人员将理解,本文中所描述的示例还如何基于参考图1呈现的LCEVC的一般描述适用于其它多层编码方案(例如,使用基础层和增强层的那些编码方案)。转向图1,在较低分辨率(通常为所要输出分辨率的四分之一)下对按比例缩小的输入执行H.264编码10。本文中被称作基础流的H.264编码10的输出可补充有额外的LCEVC数据。可在H.264网络抽象层(NAL)的补充增强信息(SEI)中或在如使用分组标识符(PID)所标识的额外数据流中添加LCEVC数据。在图1中,在将未经压缩的全分辨率视频传递到H.264编码10之前,将所述未经压缩的全分辨率视频馈送到按比例缩小器11。LCEVC编码器13从以下两个输入产生增强流:H.264(即,基础层)编码和原始的未经压缩的全分辨率视频,从而有效地填充所述两个输入之间的质量差距。随后将增强流(例如,如包封于SEI消息中)和基础流(例如,如按照非增强流使用VCL NAL构造)组合成经输出编码位流。
为了完全充分利用LCEVC的益处,组合LCEVC编码器与用于所支持的基础编解码器的基础编解码器是有益的。因此,本文中提出编码器实施方案和软件堆叠来进行此操作。编码器实施方案和软件堆叠可提供为用于编码和解码MPEG-5LCEVC增强流的经优化软件库,从而提供简单又强大的API。这允许开发人员能够灵活地在具有从低层级API到常用开源编码器和播放器中的实施方案的一系列选项的软件堆叠的任何层级处部署LCEVC。
图2在概念上说明所提出的示例软件堆叠20。在堆叠的中心处为编码器集成层21,其控制一个或多个编码器插件22和增强编码器23的操作以使用基础编码层和增强编码层产生对输入视频信号的编码。编码器集成层21为所述视频编码器提供控制接口。也就是说,编码器集成层21提供API,通过所述API可从应用层或功能层24进行调用,以指示编码的编码查询属性或元数据,且提供配置系统。编码器集成层21组合基础编码器和增强,从而编排组合行为。此外,架构所述层以通过使其通用且独立的插件系统来支持任何基础编解码器实施方案。换句话说,编码器集成层21将用户的预期功能性与LCEVC和基础编码层集成。
在优选实施例中,增强编码器23为LCEVC编码器。术语LCEVC编码器和增强编码器通篇将可互换地使用。LCEVC编码器23实施增强编码层,且从编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由所述一个或多个编码器插件中的所述一个控制的经编码视频信号的经解码版本,且接着产生用于经编码视频信号的经编码增强信号。经编码增强信号包括残差数据的一个或多个层,所述残差数据是基于从经解码视频信号导出的数据与从输入视频信号导出的数据的比较而产生的。
在本文中所描述的示例中,残差可被视为在特定质量层级或分辨率下的误差或差异。例如,在本文中引用的LCEVC的描述中提供其它细节。
除控制基础编码层和增强编码层的操作之外,编码器集成层21还提供配置系统。配置属性可由功能层设置,且由优化参数默认值的综合内置系统支持。编码器集成层21基于应用程序传递到其的关键参数,例如分辨率、位率、‘调谐’,针对LCEVC编码器23和基础编码器27两者采用理想设置。调谐将在下文更详细地描述。
一个或多个编码器插件22为一个或多个相应基础编解码器27提供包装器以实施基础编码层。每一包装器实施用于与对应的基础编解码器27进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码(即,借助于基础编解码器27)。
功能层24可实施于参考源代码25中,且包括插件22、增强编码器23和编码器集成层21的增强编码软件堆叠20可实施为编码器库26的集合。
本文中,功能层24可互换地被称作应用层或用户层,因为取决于所需实施方案,功能性可由用户特定地编码。功能层24包括由用户配置的操作,用于指示编码器集成层21、管理功能性且将调用提供到由编码器集成层21提供的API,以例如查询属性或设置增强编码的配置。
如上所述,功能层24可在软件堆叠的任何层级处实施。功能层的实施方案的示例可为视频编码工具FFmpeg。FFmpeg是视频开发人员当中流行的工具。在一示例中,功能层可由FFmpeg功能性和libav修改提供。在某些情况下,可在功能层24上方实施额外应用程序,例如客户端应用程序可调用由FFmpeg提供的视频编码功能,所述FFmpeg继而调用由编码器集成层21提供的控制接口以提供增强编码。
图3陈述用于使用编码器集成层对流进行编码的步骤的示例流程图。在此示例中,对“编码器”的参考指代如由软件堆叠20实施的增强编码器。在示例实施方案中,所述步骤由功能层或应用层执行。首先,(步骤30)初始化形成用于编码器的控制接口的编码器集成层。当存在待编码帧(步骤31)时,执行以下步骤:获得输入帧(步骤32)且将输入帧的所有权传递到编码器,即传递到编码器集成层(步骤33);等待编码器竞争(步骤34)且接着提取经编码帧,例如呈经编码位流的形式(步骤35);以及将输出帧的所有权释放回到编码器(步骤36),例如在编码器处释放分配用于对输入帧进行编码且产生经编码帧的存储器。一旦不存在帧到编码器,就关闭编码器集成层(步骤37)。
在步骤32处的输入帧可从外部源获得,例如其可作为数据传递到编码器集成层,或其可从内部源获得,例如其可(直接)从所参考的存储器位置存取。如下文更详细地描述,可将输入帧作为“图片”对象传递。在此情况下,传递输入帧的所有权可包括将图片对象的所有权传递到作为编码器集成层的部分执行的过程。一般来说,“所有权”指代控制存储有帧数据的存储器位置(例如,在随机存取存储器RAM或用于处理单元的高速缓冲存储器中,不管是中央还是图形)。在一种情况下,可首先(暂时)将图片对象的所有权传递到功能层或应用层中的应用程序,以在执行步骤33之前(即,在所有权被传递到编码器集成层以进行编码之前)填充图片对象的数据。虽然编码器具有图片对象的所有权,但功能层或应用层中的应用程序可能无法操纵所述对象。以相同方式,释放所有权可意味着编码器释放对图片对象的控制,使得此可由应用程序再次操纵,以例如加载在后续帧的数据中。
图4陈述编码器集成层可如何集成到软件堆叠中的示例步骤。图4的步骤可包括图3的更一般方法的特定实施方案。
在步骤40处,首先创建编码器集成层的实例。这可使用定义的函数调用(例如,呈例如C/C++等编程语言的对象实例创建(或“打开”)方法)来创建。编码器集成层的实例可以向编码器集成层提供句柄,所述句柄可以传递给其它函数。打开和初始化编码器集成层的设置可被定义为数据结构,例如设置对象。所述设置可包含例如待使用的基础编码器、用于基础编码器的用户数据(例如,非默认参数)和记录参数(例如,用于日志文件的文件路径)。用户数据可包含待经由插件传递到基础编码器的数据。在创建实例时,设置对象可被传递到定义的函数调用。在某些实施方案中,可将设置对象初始化为默认状态。
在某些变化形式中,可提供对象实例创建函数,其具有在函数名称末尾附加的编码器集成层的版本(即,编码器API的版本),以确保含有中断改变的编码器集成层的较新或较旧版本不会被错误使用。如果无法找到且实例化或打开所请求的基础编码器,那么可能无法创建编码器集成层的实例(例如,对象实例无法“打开”)。编码器集成层的实例的创建可创建可传递到其它函数的上下文(即,允许运行过程的数据集合,包含例如处理器寄存器、保留的过程存储器和控制寄存器以管理任务)。与对象实例创建函数相关联,还可定义对应对象实例销毁函数(例如,“关闭”方法)。此可删除所述实例且关闭或移除所述上下文。如下文在步骤s45中所陈述,当对象实例销毁被调用时,可销毁所述实例。
在步骤41处,初始化编码器集成层(即,在步骤40处产生的编码器集成层的实例)。同样,此处,设置对象可用于初始化不同编码参数和属性。举例来说,可使用或创建指定编码属性的设置对象,所述编码属性例如为分辨率、帧率、位率、变换类型(例如,如在LCEVC内定义的2乘2或4乘4阿达马(Hadamard)变换)、颜色格式(例如YUV)和图片群组(GOP)长度(以帧为单位)。基于设置对象,编码器集成层可确定GOP配置,例如其中仅第一帧为I帧(帧内)的配置或其中每一帧为I帧的配置。在某些实施例中,编码属性可呈包括编码器选项的JSON对象字符串的形式。所述设置还可包含指示是否将外部分配图片,即是否应通过集成或编码器集成层分配输入图像的平面的旗标,如其它地方所描述。如果颜色格式不如预期,那么在一个示例中,编码器初始化可将输入转换成合适的格式,例如YUV。
可将编码属性设置为由编码器集成层的接口提供的强大配置系统的部分。也就是说,除了上文在编码器集成层的打开或初始化中设置的基础帧信息之外,配置属性还可经由初始化设置数据结构中的JSON配置字符串设置。当然,将理解,JSON当然仅是可用于使用控制接口将配置设置传递到编码器集成层的数据结构的一个示例。
所述配置系统可由优化参数默认值的综合内置系统支持。编码器集成层基于由应用程序传递到其的关键参数,例如分辨率、位率、调谐,针对LCEVC编码器和基础编码器两者采用优选设置。下文将更详细地论述调谐参数。
初始化设置数据结构(例如JSON字符串)内指定的属性可覆写默认地提供或在可由编码器集成层存取的配置数据库中提供的任何设置。因此,重要的是,应用程序注意仅指定JSON字符串内用户已经明确设置的属性。举例来说,在命令行程序中,JSON字符串中仅可包含用户在命令行中指定的选项;或者,在图形用户界面(GUI)中,只有用户已手动指定选择的选项可包含在JSON字符串中。
在成功初始化后,用户或应用层可继续使用编码器集成层的所创建和初始化的实例(为简单起见,下文简称为“编码器集成层”)对图片输入(例如YUV输入)进行编码。编码器集成层因此可用作用于编码的控制接口。在步骤42处,如果先前步骤成功,那么编码器集成层现在准备好接收帧。
在示例中,提出存在用于将视频信号传递到编码器集成层的两个选项:使用外部输入或数据源(外部分配)和使用内部输入或数据源(内部分配)。可在初始化设置中将选项用信号发送到编码器集成层,如上文所陈述。外部输入或数据源可包括在编码器集成层外部产生且接着传递到所述层的数据对象。内部输入可包括使用编码器集成层的内部方法(例如,从存储器的经界定部分)提取的数据。
如果编码器集成层被配置成不使用外部输入,即,使用内部输入或数据源,那么可从编码器集成层(即,使用内部方法)提取预分配帧。举例来说,可提供“GetPicture”方法以获得具有预分配平面的图片对象。所述平面接着可填充有帧数据,例如,来自经界定内部数据源,例如存储器或文件位置。编码器集成层可另外创建图片池,方法从所述图片池中提取数据。所述池的大小取决于基础编码器的帧延迟加上编码器集成层的帧延迟,其中帧延迟为在产生任何输出之前必须提供到编码器的帧的数目。
替代地,编码器集成层的控制接口还提供对功能层的支持以在外部分配用于编码的图片。举例来说,可使用编码器集成层创建图片对象且从功能层供应数据(例如,功能层可调用图片对象创建方法且传递构成图片的用于编码的外部数据)。编码器集成层接着可将平面指针设置到其已分配的存储器且设置字段以指示每一行的字节数目。因此,如果编码器集成层被配置成接受外部分配的输入,那么功能层创建合适的对象且将其传递到编码器集成层。在另一实施示例中,编码器集成层还可被配置成接受安卓硬件缓冲器,例如当编码器集成层被配置在“GPU模式”下时。
例如由功能层在外部输入模式下创建或使用内部方法检索的图片对象可含有用于对单个视频帧进行编码所需的所有信息:例如图片平面中存储的存储器的类型(例如,可从CPU存取的存储器)、指向保存平面数据的适当结构的指针(这些平面在RGB格式的情况下可交错;因而,平面数目字段可指示平面指针的数目而非信道的数目-在相邻存储器的情况下,每一指针可设置为每一平面的开始地址且平面的数目应设置为好像存储器不相邻一样)、基础类型、帧类型和呈现时戳。
为指示编码器集成层控制帧的编码,针对待编码的帧的类型获得图片对象。如上文所描述,对于外部输入,可通过功能层创建或检索图片对象,所述功能层在创建或检索之后暂时拥有所述图片对象。随后,可将分量数据(即YUV)加载到图片对象的平面部件的预分配存储器中。最后,可通过调用由编码器集成层提供的编码方法(例如,Encode(PicObiect))且传递或参考图片对象以开始对图片进行编码来指示编码。编码方法可将图片对象和编码上下文两者视为输入,或可由编码器集成层提供编码上下文。在此指令开始编码之后,编码器重新取得图片对象的所有权,且功能层操纵所述图片对象将不再有效。此可为对单个帧的编码持续时间的阻塞调用。
在步骤43处,在编码之后,从编码器集成层提取经编码位流。编码器集成层可在接收输入数据的一个或多个帧之后输出经编码数据。可使用输出函数(例如,GetOutput(……))提取经编码数据。如果存在可用的输出数据,那么可传回成功指示。如果不存在可用数据且在编码期间未发生错误,那么可传回完成的通知。编码器集成层的输出函数可提供指向经编码位流的指针且将输出数据对象的所有权提供到调用程序(例如,功能层)。编码器集成层可例如在产生隔行编码时每单个输入产生多于一个输出。功能层接着可利用输出数据,例如,通过将输出数据直接写入到文件或复制所述输出数据,如果所述输出数据必须被缓冲以用于在多路复用系统中输出。在经编码数据的进一步处理之后,功能层可将输出数据对象释放回到编码器的所有权,使得功能层从对象读取(例如,在后续图片的编码期间)不再有效。
输出数据可提供为含有用于经编码数据帧的信息的数据结构。在示例实施方案中,这些可不手动创建,且可处理为只写数据结构。除指向数据位置的指针之外,数据结构还可包括或指示经编码数据的多种属性,例如:帧类型和/或字段类型(例如,不管产生此输出的帧是渐进的、隔行还是字段);基础类型和/或关键帧(例如,基础编码器产生的帧的类型,且其是否标记为关键帧);量化参数(例如,所述帧的量化参数-QP,如基础编码器所报告);呈现时戳(例如,经编码帧,即输入帧的或由基础编码器产生的呈现时戳);解码时戳(例如,经编码帧的解码时戳,如由基础编码器所产生);配置旗标(例如,指示此输出中的数据是编码器的配置还是基础编码器配置-例如如果基础编码器为H.264编码器且配置为1,那么输出仅含有SPS和PPS NAL单元且在任何帧数据之前呈现配置输出)数据长度;以及用户数据(例如,产生此帧的图片上设置的用户数据)。
返回到图4,当已经耗尽例如文件流等输入数据源时,这可以用信号发送到编码器集成层以指示输入数据不再可用。举例来说,此可通过将空值传递到上文所论述的编码函数来执行。在接收到指示不存在进一步输入的信号后,编码器集成层接着完成处理任何列队的视频帧且完成将在流结束时执行的任何动作。在图式的步骤44处,为了完成编码,使用用于图片对象自变量的空指针调用编码函数,且这用作编码器集成层刷新整个管线的指示。当对剩余图片进行编码时,此为阻塞调用;后续调用可能没有效果。一旦编码完成,那么可在步骤45处销毁编码集成层(即,特定实例)。可以在编码器集成层的控制接口中提供关闭函数,以安全地关闭和释放编码上下文。
在以上方法中,描述与编码器集成层相关联的各种函数。这些包含实例创建函数(例如,Open(……))、初始化函数(例如,Init(……))、图片数据检索函数(例如,用于内部数据源的GetPicture(……))、编码函数(例如,Encode(……))、输出检索函数(例如,GetOutput(……))、释放输出函数(例如,ReleaseOutput)和关闭函数(例如,Close(……))。例如这些函数等函数(其被视为非限制性且非穷尽性的)可被视为由编码器集成层提供的控制接口。应注意,在本描述中,对于允许控制来自功能层的编码器集成层的机构,术语“控制接口”、可调用“函数”和API被视为同义词。在某些示例中,编码器集成层提供的控制接口还可以为功能层提供一种机制,以在视频信号的编码期间指示动态重新配置。如果基础编码器还支持动态重新配置,那么编码器集成层可指示使用插件对基础编码器的动态重新配置。这可通过将设置传递到由编码器集成层的控制接口提供的重新配置函数来执行。编码器集成层和插件接着具有控制动态重新配置的内部方法,例如,可使用可用于编码器集成层的单个共同插件接口将参数传递到不同基础编码器的不同接口。可在合适的数据结构中提供设置。
如上文在图2的上下文中所描述,软件堆叠20提供一个或基础编码器插件22。基于包括用于打开编码器集成层的设置的数据结构中指定的基础编码器的名称,实施其对应的包装器的基础编码器插件可在运行时间动态地加载,如上文所描述。
如上文所描述,在某些实施方案中,可提供接口以供编码器集成层与插件交互。这允许用户通过插件系统任选地实施其自身的基础编码器而不需要嵌入在编码器集成层内,且提供模块性的益处。提供于两个编码器之间的接口的示例提供于以引用的方式并入本文中的WO 2017/089839中。
如上所述,编码器集成层可提供强大配置系统作为控制接口的部分。举例来说,可由编码器集成层提供一个或多个API命令以允许功能层查询某些属性。配置系统可使用功能层可存取的只读属性与可写属性的组合。在一实施方案中,可通过API查询用于基础编码器和LCEVC增强的所有公开可用的编码配置属性。
在一个示例中,可通过对属性群组的调用匿名地查询属性。这将返回所有属性群组的阵列,每一属性群组含有所述群组中的所有属性的阵列。如果用户知晓属性的名称,那么可通过对所述接口的特定调用直接查询所述属性。每一属性通常含有所述属性的名称、描述和预期类型以及其当前值。
所述接口还提供功能层(即,用户)查询编码器的元数据的机制。元数据的工作方式与属性基本相同,不同之处在于其仅从系统查询且无法在外部设置。其可经处理为只读属性。
在一个特定实施方案中,可仅通过名称查询元数据。
可查询的示例元数据包含:所利用的基础编码器插件的基本技术(例如,libx264插件将在此元数据中输出“H264”);基础编码视频的宽度;以及基础编码视频的高度。
有利的是,所述接口还实施对允许存取存储器的相邻块(例如,所谓的“blob”)的属性的扩展,编码器集成层可将元数据放置到所述相邻块中。此系统并有基础编码器插件,或与所述插件一起工作,使得基础编码器可将一些数据(例如,配置信息)输出到存储器的一个或多个块,其中编码器集成层对其用途一无所知。此系统用于允许编码器集成层向用户报告一些内部值,或未解译为属性或无法表达为属性的数据。举例来说,FFmpeg样本集成可利用此特征从libx264基础编码器插件获得H.264全局标头以用于HTTP实时流式传输(HLS)。
在一个实施示例中,此扩展可在‘全局标头’x264属性设置为1时可用,且可允许经由编码器集成层存取含有来自基本H.264基础编解码器的H.264标头(PPS、SPS等)的存储器的相邻块。当输出数据结构分段时,可使用所述扩展,使得标头可在每一片段的开始处注入。
配置系统还提供用以选择预定参数集合以提供预定义优化的机制。上文所提及的这些参数为“调谐”参数且可作为初始化设置的一部分向编码器集成层发出指令。在一种情况下,每一“调谐”(即,参数集合)可表示不同编码目标或目的。取决于所选择的调谐,编码器接着能够实施被视为(例如,经由测试或实验)对于所述目标最优的所定义设置和参数。在基本示例中,所述设置可选择‘调谐’#1且编码器集成层可根据此优化选择多个参数。当使用AVC基础编码器时,根据编码的目标,可存在x264‘调谐’的集合,例如指示LCEVC调谐的不同变型。示例包含针对视觉质量、针对视频多方法评估融合(VMAF)度量、针对VMAF NEG(无增强增益)度量、针对PSNR、针对结构类似性(例如,根据结构类似性指数量度-SSIM或多尺度结构类似性指数量度-MS-SSIM)或针对动画的视觉质量进行优化。
在某些示例中,如本文中所描述的编码器可在恒定位率模式(CBR)或(未封端或封端)恒定速率因子(pCRF)模式下对增强流进行编码。举例来说,可将这些设置为用于实例化和/或初始化编码器集成层的设置的部分。可根据不同模式应用速率控制:例如“信息块”(默认)或“滚动窗口”。当处于流式传输“信息块”模式时,编码器集成层实施的速率控制器在每一流式传输信息块的开始处重置漏桶填充水平,以避免从一个信息块到下一信息块的不必要的影响(例如,仅因为前一个信息块稍大而使信息块略小于目标位率,反之亦然)。当处于“滚动窗口”模式时,替代地,漏桶填充水平从未重置。对于基于平均位率(ABR)信息块的流式传输推荐“信息块”模式,而对于低延迟视频以及涉及短自相似序列的测试推荐“滚动窗口”模式。“信息块”模式可默认地起作用,因此可不需要明确地指定对应设置。为了激活“滚动窗口”模式,可在设置属性内设置命令或数据项。类似地,可改变速率控制窗口长度。pCRF模式可以类似于其它编解码器中的比较CRF模式的方式应用。这可在编码器集成层内应用自定义处理。其它细节可发现于以引用的方式并入本文中的WO 2020/188230中。pCRF模式可确保在整个经编码视频中维持某一质量因子,具有未封端位率。以与AVC中的比较性使用类似的方式,较低pCRF值意味着较少压缩和较高质量,以较大文件大小为代价。pCRF值可被定义为具有类似于AVC的CRF(例如,典型值范围20到36)的含义的浮点分数,从而控制如由编码器集成层控制的基础和增强编码的整体质量。为了激活pCRF,可将设置提供到编码器集成层,且编码器集成层继而可控制插件和LCEVC编码器。
本文中呈现的示例提供编码器集成层,其允许协调或编排基础编码器和LCEVC编码器的行为以对基础流和LCEVC增强流进行编码。插件集合可向编码器集成层呈现共同(即单一规范)接口,以允许编码器集成层控制不同基本基础编解码器。每一基本基础编解码器可具有不同插件,其中插件提供特定针对于基础编解码器以用于控制基础编码器的接口和到编码器集成层的共同接口,即有效地“包装”基础编解码器的功能性。这接着允许使用不同插件来支持不同的基础编解码器,其中插件可容易地实施为命令映射,且由编码器集成层执行更复杂的控制。类似地,LCEVC编码器可包括被配置成输出可由标准定义的解码器解码的LCEVC增强流的编码器。编码器集成层经由插件和LCEVC编码器控制基础编码器的操作。编码器集成层可协调基础编码器与LCEVC编码器之间的图片数据的交换且控制单个多路复用流的输出以供传输或存储。编码器集成层为基础编码和LCEVC编码两者提供可由功能层内的客户端应用程序使用的易于使用接口,使得客户端应用程序可与比较基础编码一样容易地创建LCEVC编码,编码器集成层在客户端应用程序看来只是“另一编码器”且多层处理从客户端应用程序隐藏。
在例如实施于流式传输服务器或客户端装置或从数据存储库编码的装置中的编码器处,本文中所描述的方法和过程可体现为代码(例如,软件代码)和/或数据。编码器可以硬件和/或软件实施,如数据压缩所属的领域中所熟知。举例来说,使用专门编程的图形处理单元(GPU)或专门设计的现场可编程门阵列(FPGA)的硬件加速可提供某些效率。此可为用于实施基础编解码器的集合和/或LCEVC编码器的情况。出于完整性,代码和数据可存储于一个或多个计算机可读介质上,所述计算机可读介质可包含可存储代码和/或数据以供计算机系统使用的任何装置或介质。当计算机系统读取并且执行存储于计算机可读介质上的代码和/或数据时,计算机系统执行体现为存储在计算机可读存储介质内的数据结构和代码的方法和过程。在某些实施例中,本文中所描述的方法和过程的步骤中的一个或多个可由处理器(例如,计算机系统或数据存储系统的处理器)执行。
一般来说,此文本中所描述或图式中所说明的功能性中的任一者可使用软件、固件(例如,固定逻辑电路系统)、可编程或不可编程硬件,或这些实施方案的组合来实施。一般来说,如本文中所使用的术语“组件”或“功能”表示软件、固件、硬件或这些的组合。举例来说,在软件实施方案的情况下,术语“组件”或“功能”可指代在被执行于一个或多个处理装置上时执行指定任务的程序代码。组件和功能分离成相异单元的所说明分离可反映此类软件和/或硬件和任务的任何实际或概念性的物理分组和分配。
Claims (17)
1.一种视频编码器,其包括:
一个或多个编码器插件,其为一个或多个相应基础编解码器提供包装器以实施基础编码层,每一包装器实施用于与对应基础编解码器进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码;
增强编码器,其用以实施增强编码层,所述增强编码器被配置成:
从所述一个或多个编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由所述一个或多个编码器插件中的所述一个产生的经编码视频信号的经解码版本,且
针对所述经编码视频信号产生经编码增强信号,所述经编码增强信号包括残差数据的一个或多个层,所述残差数据基于从所述经解码视频信号导出的数据与从输入视频信号导出的数据的比较产生;以及
编码器集成层,其用以控制所述一个或多个编码器插件和所述增强编码器的操作以使用所述基础编码层和所述增强编码层产生所述输入视频信号的编码,
其中所述编码器集成层为所述视频编码器提供控制接口。
2.根据权利要求1所述的视频编码器,其中所述编码器集成层被配置成:接收所述输入视频信号的帧的所有权;指示通过所述一个或多个编码插件和所述增强编码器对所述帧的编码;以及在经由所述控制接口请求后将指针提供到输出数据的位置。
3.根据权利要求2所述的视频编码器,其中所述指针提供于数据结构内,所述数据结构进一步包括与所述输入视频信号的所述编码相关联的辅助信息。
4.根据前述权利要求中任一项所述的视频编码器,其中所述编码器集成层进一步被配置成针对待编码的帧的类型从所述输入视频信号的所述帧创建数据结构,所述数据结构包括共同构成所述帧的平面集;且使用来自所述输入视频信号的所述帧的帧数据填充所述平面。
5.根据权利要求1至3中任一项所述的视频编码器,其中所述编码器集成层进一步被配置成标识帧被外部分配且检索数据结构,所述数据结构包括共同构成所述输入视频信号的帧的平面集和对所述帧进行编码所必需的参数集。
6.根据前述权利要求中任一项所述的视频编码器,其中所述编码器集成层被配置成获得编码属性的集合,并且在初始化所述编码器集成层后,经由所述控制接口,根据所述编码属性确认成功初始化。
7.根据权利要求6所述的视频编码器,其中所述编码器集成层被配置成接收编码属性的另一集合且指示使用所述一个或多个编码器插件重新配置所述基础编码器层。
8.根据前述权利要求中任一项所述的视频编码器,其中所述编码器集成层被配置成:获得配置默认值的集合;检索包括一个或多个配置属性的配置数据结构;以及覆写对应于所述一个或配置属性的配置默认值的所述集合中的配置默认值。
9.根据前述权利要求中任一项所述的视频编码器,其中所述控制接口包括预定义查询的集合,其中所述编码器集成层被配置成从预定义查询的所述集合接收查询且返回所述编码器集成层的对应编码或配置属性。
10.根据前述权利要求中任一项所述的视频编码器,其中所述控制接口包括预定义元数据查询的集合,所述编码器集成层被配置成接收针对一个或多个元数据属性的查询,其中所述编码器集成层被配置成从所述一个或多个编码器插件检索元数据且返回对应于所述一个或多个元数据属性的只读元数据属性。
11.根据前述权利要求中任一项所述的视频编码器,其中所述控制接口包括预定义元数据查询的集合,且其中所述编码器集成层被配置成接收针对一个或多个元数据属性的查询,且所述编码器集成层被配置成从所述一个或多个编码器插件检索元数据且响应于所述查询返回存储所述元数据的存储器块的位置。
12.根据前述权利要求中任一项所述的视频编码器,其中所述控制接口提供预定优化指令的集合,且其中所述编码器集成层被配置成接收所述预定指令中的一个或多个且根据对应于接收到的指令的预定义变型优化所述一个或多个编码器插件和所述增强编码器的所述操作。
13.一种使用根据权利要求1至12中任一项所述的视频编码器对视频信号进行编码的方法,所述方法包括:
初始化所述编码器集成层;
当存在输入视频信号的待编码帧时:
检索所述输入视频信号的输入帧并经由所述控制接口将所述帧的所有权传递到所述视频编码器;
等待所述视频编码器对所述输入帧进行编码并随后提取输出数据;以及
将所述输出数据的所有权释放回到所述编码器集成层,及
关闭所述编码器集成层。
14.一种包括指令的计算机可读介质,所述指令在由处理器执行时使得所述处理器实行根据权利要求13所述的步骤。
15.一种视频编码系统,其包括:
根据权利要求1至12中任一项所述的视频编码器;
一个或多个基础编解码器;以及
应用层,其经由所述控制接口将一个或多个调用提供到所述视频编码器以指示视频编码。
16.根据权利要求15所述的视频编码系统,其中所述应用层被配置成经由所述控制接口:
初始化所述编码器集成层;
当存在输入视频信号的待编码帧时:
检索所述输入视频信号的输入帧并经由所述控制接口将所述帧的所有权传递到所述视频编码器;
等待所述视频编码器对所述输入帧进行编码并随后提取输出数据;以及
将所述输出数据的所有权释放回到所述编码器集成层,及
关闭所述编码器集成层。
17.一种编码器集成层,其用以控制一个或多个编码器插件和增强编码器的操作以使用基础编码层和增强编码层产生输入视频信号的编码,
其中所述编码器集成层为视频编码器提供控制接口,
其中所述一个或多个编码器插件为一个或多个相应基础编解码器提供包装器以实施所述基础编码层,每一包装器实施用于与对应基础编解码器进行数据交换的接口,所述基础编码层被配置成对视频信号进行编码和解码;且
所述增强编码器实施增强编码层,所述增强编码器被配置成:
从所述一个或多个编码器插件中的一个接收经解码视频信号,所述经解码视频信号包括由所述一个或多个编码器插件中的所述一个产生的经编码视频信号的经解码版本,且
针对所述经编码视频信号产生经编码增强信号,所述经编码增强信号包括残差数据的一个或多个层,所述残差数据基于从所述经解码视频信号导出的数据与从所述输入视频信号导出的数据的比较产生。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2011670.3 | 2020-07-28 | ||
GB2011670.3A GB2599341A (en) | 2020-07-28 | 2020-07-28 | Management system for multilayer encoders and decoders and method thereof |
GB2018734.0A GB2597552B (en) | 2020-07-28 | 2020-11-27 | Integrating an encoder for hierachical video coding |
GB2018734.0 | 2020-11-27 | ||
PCT/GB2021/051951 WO2022023747A1 (en) | 2020-07-28 | 2021-07-28 | Integrating an encoder for hierachical video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115968546A true CN115968546A (zh) | 2023-04-14 |
Family
ID=72339273
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180050397.3A Pending CN115968546A (zh) | 2020-07-28 | 2021-07-28 | 集成用于分层视频编码的编码器 |
CN202180050740.4A Pending CN115956364A (zh) | 2020-07-28 | 2021-07-28 | 集成用于分层视频编码的解码器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180050740.4A Pending CN115956364A (zh) | 2020-07-28 | 2021-07-28 | 集成用于分层视频编码的解码器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20230262240A1 (zh) |
EP (2) | EP4189961A1 (zh) |
CN (2) | CN115968546A (zh) |
GB (5) | GB2599341A (zh) |
WO (2) | WO2022023747A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2613886A (en) * | 2021-12-20 | 2023-06-21 | V Nova Int Ltd | Synchronising frame decoding in a multi-layer video stream |
CN114449295A (zh) * | 2022-01-30 | 2022-05-06 | 京东方科技集团股份有限公司 | 视频处理方法、装置、电子设备及存储介质 |
WO2023184206A1 (en) * | 2022-03-30 | 2023-10-05 | Intel Corporation | Enhanced presentation of tiles of residual sub-layers in low complexity enhancement video coding encoded bitstream |
GB2619096A (en) | 2022-05-27 | 2023-11-29 | V Nova Int Ltd | Enhancement interlacing |
GB2620994B (en) | 2022-08-22 | 2024-07-24 | V Nova Int Ltd | Encoding and decoding of pre-processing renditions of input videos |
US20240098285A1 (en) | 2022-09-20 | 2024-03-21 | V-Nova International Limited | Method for decoding a video stream |
CN115473610B (zh) * | 2022-11-11 | 2023-03-24 | 蓝象智联(杭州)科技有限公司 | 一种用于安全多方计算的数据编解码方法及求交方法 |
GB2625574A (en) * | 2022-12-21 | 2024-06-26 | V Nova Int Ltd | Constant rate factor video encoding control |
WO2024134191A1 (en) | 2022-12-21 | 2024-06-27 | V-Nova International Limited | Constant rate factor video encoding control |
GB2627287A (en) * | 2023-02-17 | 2024-08-21 | V Nova Int Ltd | A video encoding module for hierarchical video coding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977065B2 (en) * | 2011-07-21 | 2015-03-10 | Luca Rossato | Inheritance in a tiered signal quality hierarchy |
SG11201508427YA (en) | 2013-04-15 | 2015-11-27 | Luca Rossato | Hybrid backward-compatible signal encoding and decoding |
GB2544800A (en) | 2015-11-27 | 2017-05-31 | V-Nova Ltd | Adaptive bit rate ratio control |
GB2553556B (en) | 2016-09-08 | 2022-06-29 | V Nova Int Ltd | Data processing apparatuses, methods, computer programs and computer-readable media |
GB2620500B (en) * | 2019-03-20 | 2024-05-15 | V Nova Int Ltd | Low complexity enhancement video coding |
EP3942809A1 (en) | 2019-03-20 | 2022-01-26 | V-Nova International Ltd | Rate control for a video encoder |
GB201905400D0 (en) * | 2019-04-16 | 2019-05-29 | V Nova Int Ltd | Video coding technology |
-
2020
- 2020-07-28 GB GB2011670.3A patent/GB2599341A/en active Pending
- 2020-11-27 GB GB2018734.0A patent/GB2597552B/en active Active
- 2020-11-27 GB GB2018723.3A patent/GB2597551B/en active Active
-
2021
- 2021-07-28 GB GB2302733.7A patent/GB2613102A/en active Pending
- 2021-07-28 WO PCT/GB2021/051951 patent/WO2022023747A1/en active Application Filing
- 2021-07-28 EP EP21749684.3A patent/EP4189961A1/en active Pending
- 2021-07-28 GB GB2302732.9A patent/GB2612556A/en active Pending
- 2021-07-28 CN CN202180050397.3A patent/CN115968546A/zh active Pending
- 2021-07-28 US US18/007,211 patent/US20230262240A1/en active Pending
- 2021-07-28 EP EP21749688.4A patent/EP4189962A1/en active Pending
- 2021-07-28 US US18/007,219 patent/US20230370623A1/en active Pending
- 2021-07-28 WO PCT/GB2021/051940 patent/WO2022023739A1/en active Application Filing
- 2021-07-28 CN CN202180050740.4A patent/CN115956364A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202302732D0 (en) | 2023-04-12 |
GB2599341A (en) | 2022-04-06 |
GB202018723D0 (en) | 2021-01-13 |
GB202302733D0 (en) | 2023-04-12 |
WO2022023739A1 (en) | 2022-02-03 |
GB2597552B (en) | 2023-11-15 |
GB2612556A (en) | 2023-05-03 |
GB2597551B (en) | 2024-07-31 |
EP4189962A1 (en) | 2023-06-07 |
GB202018734D0 (en) | 2021-01-13 |
GB202011670D0 (en) | 2020-09-09 |
US20230262240A1 (en) | 2023-08-17 |
EP4189961A1 (en) | 2023-06-07 |
WO2022023747A1 (en) | 2022-02-03 |
GB2597552A (en) | 2022-02-02 |
CN115956364A (zh) | 2023-04-11 |
GB2613102A (en) | 2023-05-24 |
GB2597551A (en) | 2022-02-02 |
US20230370623A1 (en) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115968546A (zh) | 集成用于分层视频编码的编码器 | |
US10750205B2 (en) | Selective use of start code emulation prevention | |
US20220400270A1 (en) | Low complexity enhancement video coding | |
CN114747219A (zh) | 用于存储和信令传送子样本条目描述的方法和装置 | |
US20030163781A1 (en) | Method and apparatus for supporting advanced coding formats in media files | |
US10771792B2 (en) | Encoding data arrays | |
US20030163477A1 (en) | Method and apparatus for supporting advanced coding formats in media files | |
KR102569347B1 (ko) | 비디오 인코딩 및 디코딩에서의 개선된 타일 어드레스 시그널링 | |
WO2020184672A1 (ja) | 画像復号装置、画像復号方法、画像符号化装置、および画像符号化方法 | |
US7366986B2 (en) | Apparatus for receiving MPEG data, system for transmitting/receiving MPEG data and method thereof | |
WO2008048009A1 (en) | Device and method for encoding/decoding bit-stream | |
EP4354868A1 (en) | Media data processing method and related device | |
US11189006B2 (en) | Managing data for transportation | |
JP4850806B2 (ja) | エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム | |
WO2020089616A1 (en) | Methods, apparatuses, computer programs and computer-readable media for processing configuration data | |
US20240098285A1 (en) | Method for decoding a video stream | |
WO2008048010A1 (en) | Device and method for encoding/decoding bit-stream | |
KR20050098258A (ko) | 코딩된 신호내의 워터마크 임베딩 | |
KR20220082633A (ko) | Drm 스트리밍 기술을 지원하는 포렌식 마킹 장치 및 방법 | |
KR20220082578A (ko) | 비밀 분산 기술이 적용된 포렌식 마킹 장치 및 방법 | |
GB2619186A (en) | Low complexity enhancement video coding | |
GB2610004A (en) | Integrating a decoder for hierachical video coding | |
GB2624478A (en) | Method of decoding a video signal | |
JP2023550940A (ja) | クライアントデバイス上でビデオストリームを復号化すること | |
WO2008123710A1 (en) | Bitstream decoding device and method having decoding solution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |