CN115297328B - 面向分布式集群的多节点并行视频转码方法 - Google Patents

面向分布式集群的多节点并行视频转码方法 Download PDF

Info

Publication number
CN115297328B
CN115297328B CN202211231042.7A CN202211231042A CN115297328B CN 115297328 B CN115297328 B CN 115297328B CN 202211231042 A CN202211231042 A CN 202211231042A CN 115297328 B CN115297328 B CN 115297328B
Authority
CN
China
Prior art keywords
transcoding
video
frame number
processes
delta
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211231042.7A
Other languages
English (en)
Other versions
CN115297328A (zh
Inventor
邓正秋
吕绍和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Malanshan Video Advanced Technology Research Institute Co ltd
Original Assignee
Hunan Malanshan Video Advanced Technology Research Institute Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan Malanshan Video Advanced Technology Research Institute Co ltd filed Critical Hunan Malanshan Video Advanced Technology Research Institute Co ltd
Priority to CN202211231042.7A priority Critical patent/CN115297328B/zh
Publication of CN115297328A publication Critical patent/CN115297328A/zh
Application granted granted Critical
Publication of CN115297328B publication Critical patent/CN115297328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及视频处理技术领域,尤其涉及一种面向分布式集群的多节点并行视频转码方法,包括初始化进程数目和进程号,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程,各个进程根据起始帧号和结束帧号完成对应视频帧序列的转码操作并将转码后的视频序列写入到临时文件,0号进程对每个进程的临时文件按序合并得到最终转码后的视频,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束,提高了转码效率。

Description

面向分布式集群的多节点并行视频转码方法
技术领域
本发明涉及视频处理技术领域,尤其涉及一种面向分布式集群的多节点并行视频转码方法。
背景技术
以FFmpeg为代表的视频处理软件仅支持多线程并行转码操作,通常按帧(frame)或按片(slice)并行,这些方法采用主从线程模式并行处理视频帧或片,因此只能利用单个节点的硬件资源,并且当线程数超过一定数目后,并行效率较低。分布式集群由大量节点组成,而传统的并行方法无法利用多节点,造成很大资源浪费。
中国专利申请公开号:CN112312164A公开了一种基于分布式转码服务器的视频转码系统,其公开的技术方案中包括终端设备、多媒体资源应用平台、Web服务器、资源管理服务器、转码调度服务器、Job Tracker服务器、分布式转码服务器和Reduce Task服务器。本发明的视频转码系统采用Hadoop框架,通过转码调度服务器实现视频转码系统内部的调度管理以及数据收集,利用JobTracker服务器、分布式转码服务器和ReduceTask服务器分别完成对待转码视频文件的分割、分片文件的并行转码以及转码完成后的分片文件的合并,提高了转码速度,使终端设备或者多媒体资源应用平台不会出现播放卡顿,为用户提供了良好的视频播放体验,非常适合大规模推广应用。
分布式集群由大量节点组成,因此仅通过单节点多线程的方式来进行视频转码(video transcoding)无法充分利用多节点资源,从而如何实现多节点并行视频转码是亟待解决的难题。本发明拟提出一种并行视频转码方法,充分利用多节点资源,实现高效地多节点并行视频转码操作。
发明内容
为此,本发明提供一种面向分布式集群的多节点并行视频转码方法,用以克服现有技术中视频转码效率低的问题。
为实现上述目的,本发明提供一种面向分布式集群的多节点并行视频转码方法,包括:
步骤S1,初始化进程数目和进程号,当面向分布式集群进行多节点并行视频转码 时,首先用消息传递接口MPI初始化进程数目和进程号,其中进程数目为
Figure 301098DEST_PATH_IMAGE001
,进程号
Figure 687080DEST_PATH_IMAGE002
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
进一步地,在所述步骤S2中,包括:
步骤S2-1,初始化视频划分时间数组
Figure 201238DEST_PATH_IMAGE003
,其长度为
Figure 65289DEST_PATH_IMAGE001
,每个元素表示对应进程处 理的视频起始时间点;
步骤S2-2,初始化
Figure 348503DEST_PATH_IMAGE004
,其中,
Figure 639807DEST_PATH_IMAGE005
表示数组索引;
步骤S2-3,分析输入视频,获得视频时长
Figure 375681DEST_PATH_IMAGE006
步骤S2-4,判断i是否为0,若是,则
Figure 43423DEST_PATH_IMAGE007
,并执行步骤S2-6,若否,执行步骤 S2-5;
步骤S2-5,按照进程数目和视频时长初始化
Figure 679679DEST_PATH_IMAGE008
Figure 141884DEST_PATH_IMAGE009
,其中
Figure 365055DEST_PATH_IMAGE010
为指示函数
Figure 305329DEST_PATH_IMAGE011
中x的取值,仅当
Figure 297556DEST_PATH_IMAGE012
为真时取1,为假时取0;
步骤S2-6,令i=i+1;
步骤S2-7,判断i是否小于
Figure 196242DEST_PATH_IMAGE001
,若是,则返回步骤S2-4,若否,则执行步骤S2-8;
步骤S2-8,在状态文件中写入状态“time partition finished”。
进一步地,在所述步骤S3中,包括:
步骤S3-1,初始化关键帧号数组
Figure 906709DEST_PATH_IMAGE013
,其长度为
Figure 650674DEST_PATH_IMAGE001
,每个元素表示对应进程的视频 起始关键帧号;
步骤S3-2,初始化,其中,
Figure 264451DEST_PATH_IMAGE005
表示数组索引;
步骤S3-3,根据
Figure 68459DEST_PATH_IMAGE014
定位该时间点附近的关键帧,其帧号为
Figure 266222DEST_PATH_IMAGE015
,令
Figure 813878DEST_PATH_IMAGE016
,压 缩的视频流中视频帧可能依赖于前面的视频帧,而关键帧不依赖于任何其他视频帧,为保 证正确解码,需保证每个进程的起始帧为关键帧;
步骤S3-4,令i=i+1;
步骤S3-5,判断i是否小于
Figure 577435DEST_PATH_IMAGE001
,若是,则返回步骤S3-3,若否,则执行步骤S3-6;
步骤S3-6,通过MPI_Scatter操作分发进程的起始帧号和结束帧号,对于进程
Figure 817923DEST_PATH_IMAGE017
,起 始帧号
Figure 237403DEST_PATH_IMAGE018
,结束帧号为
Figure 588750DEST_PATH_IMAGE019
Figure 410076DEST_PATH_IMAGE020
),对于进程
Figure 320001DEST_PATH_IMAGE021
,其结束帧号为,其中,
Figure 961198DEST_PATH_IMAGE022
为总帧数;
步骤S3-7,将关键帧号数组
Figure 850656DEST_PATH_IMAGE013
写入到状态文件中,并写入状态“key frame number generated”。
进一步地,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
步骤S4-5,判断j是否满足
Figure 792067DEST_PATH_IMAGE023
,若是,则执行步骤S4-6,若否,则执行 步骤S4-7;
步骤S4-6,读取第j个压缩视频帧,解码第j个压缩视频帧为原始视频帧,并对原始 视频帧重新编码,写入到临时文件中,对重新编码后的视频帧分析,若是关键帧,则将帧号j 写入到进程
Figure 374359DEST_PATH_IMAGE024
的进度文件中;
步骤S4-7,令j=j+1;
步骤S4-8,判断j是否大于,若是,则完成转码,若否,则返回步骤S4-5。
进一步地,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
进一步地,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
Figure 768431DEST_PATH_IMAGE025
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
进一步地,根据CPU运算速率V和数据传输速率X按照以下公式计算时间间隔参数R,设定
Figure 461580DEST_PATH_IMAGE026
其中,V0为预设运算速率,X0为预设数据传输速率。
进一步地,当完成间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
进一步地,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
进一步地,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键 帧号数组
Figure 991919DEST_PATH_IMAGE013
,通过MPI_Scatter操作分起始帧号
Figure 240717DEST_PATH_IMAGE027
和结束帧号
Figure 918823DEST_PATH_IMAGE028
至其它进程,并执 行步骤S6-3,否则,执行步骤S6-6;
步骤S6-3,各个进程读取其进度文件,获得故障前转码的最后一个关键帧号
Figure 415663DEST_PATH_IMAGE029
, 删除临时文件中第
Figure 66087DEST_PATH_IMAGE029
个帧及之后的所有转码后的视频帧;
步骤S6-4,令
Figure 724602DEST_PATH_IMAGE030
步骤S6-5,执行以上转码、合并两个过程,结束;
步骤S6-6,若发生故障时
Figure 93266DEST_PATH_IMAGE013
还未生成,重新执行进程初始化、时间点数组生成、 关键帧号数组生成、转码、合并等以上所有过程。
与现有技术相比,本发明的有益效果在于,本发明所述面向分布式集群的多节点并行视频转码方法能够完成多节点并行视频转码操作,且转码过程中发生故障可快速恢复至故障前的状态,继续转码,避免完全重新转码的开销,基于MPI实现多进程,充分利用多节点资源,显著提升视频转码性能。
进一步地,为适应不同网络带宽和端处理能力,通常需将已经压缩编码的视频码流转换成另一种视频码流,即视频转码。例如,在带宽有限的情况下,MPEG-2视频码流需较大的带宽,此时通常将其转码为占用带宽较小的H264编码。在当前互联网时代,视频转码被应用到PC端视频播放、视频监控等多种场景。视频转码运算量极大,需对视频流进行全解码、帧处理、再编码,在缺少硬件加速器的情况下,单个节点进行转码时间效率较低,此时,可通过分布式集群并行转码。分布式集群包含多个节点,其上部署了SLURM集群管理和调度系统,该系统会为任务队列合理分配资源,并监视作业至其完成,借助SLURM和消息传递接口(Message Passing Interface, MPI)可启动多进程并行任务,利用多节点资源,提高视频转码效率。
进一步地,通过对快动进程域和慢动进程域中的各进程的转码时长进行排序并按照排列顺序对各进程进行身份标识,并将快动进程域中转码速率最快的进程与慢动进程域中转码速率最慢的进程进行匹配,以此类推,全部完成快动进程域或慢动进程域中所有进程匹配,在判定是否开启进程通信时,以两匹配的进程为基础进行判断,以使转码速率最慢的进程能够与转码速率最快的进程共享资源,并以此类推,以实现提高转码速率的目的。
进一步地,在确定两个匹配的进程间开启通信的时间差异度时,CPU运算速率和数据传输速率为两个关键的影响因素,本发明引入间间隔参数R,其根据CPU运算速率和数据传输速率计算得出,对于确定时间差异度具有很好的表征性,当CPU运算速率和数据传输速率较快时,完成数据传输和视频转码的速度也较快,此时可将时间差异度调节为一个较小的值,当CPU运算速率和数据传输速率较慢时,完成数据传输和视频转码的速度也较慢,此时将时间差异度调节为一个较大的值,在适应CPU运算速率和数据传输速率的前提下,最大限度的提高转码效率。
进一步地,进程通信开启后,开启通信的进程会进行数据传输以实现资源共享,本发明通过设置标准时长差值判定两个匹配的进程间是否需要开启通信,当两个匹配的进程间转码时长相差较小时,由于进程间通信需要进行数据传输,增加运算量,此时若开启进程间通信反而会增加运算时间,可能会导致更长的转码时长,此时判定不开启两个进程间通信;当两个匹配的进程间转码时长相差较大时,此时开启两个进程间通信,且当身份标识Q1f的进程完成转码时开启两个进程间通信,由于进程通信后,进程之间的隔离被打破,相匹配的两进程之间实现资源共享,若两进程之间的转码任务均未完成,则会增加转码错误的风险,此时当身份标识Q1f的进程完成转码时开启两个进程间通信,避免了转码错误的风险,同时提高了转码效率。
附图说明
图1为本发明实施例面向分布式集群的多节点并行视频转码方法的流程图;
图2为本发明实施例步骤S4-6中发生故障后N个进程的进度文件示意图;
图3为本发明实施例步骤S6-3中视频帧删除后的结果示意图。
具体实施方式
为了使本发明的目的和优点更加清楚明白,下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
请参阅图1所示,其为本发明实施例面向分布式集群的多节点并行视频转码方法的流程图,本发明所述面向分布式集群的多节点并行视频转码方法,包括:
步骤S1,初始化进程数目和进程号,当面向分布式集群进行多节点并行视频转码 时,首先用消息传递接口MPI初始化进程数目和进程号,其中进程数目为
Figure 862639DEST_PATH_IMAGE001
,进程号
Figure 898728DEST_PATH_IMAGE002
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
为适应不同网络带宽和端处理能力,通常需将已经压缩编码的视频码流转换成另一种视频码流,即视频转码。例如,在带宽有限的情况下,MPEG-2视频码流需较大的带宽,此时通常将其转码为占用带宽较小的H264编码。在当前互联网时代,视频转码被应用到PC端视频播放、视频监控等多种场景。视频转码运算量极大,需对视频流进行全解码、帧处理、再编码,在缺少硬件加速器的情况下,单个节点进行转码时间效率较低,此时,可通过分布式集群并行转码。分布式集群包含多个节点,其上部署了SLURM集群管理和调度系统,该系统会为任务队列合理分配资源,并监视作业至其完成,借助SLURM和消息传递接口(MessagePassing Interface, MPI)可启动多进程并行任务,利用多节点资源,提高视频转码效率。
具体而言,在所述步骤S2中,包括:
步骤S2-1,初始化视频划分时间数组
Figure 462565DEST_PATH_IMAGE003
,其长度为
Figure 817060DEST_PATH_IMAGE001
,每个元素表示对应进程处 理的视频起始时间点;其中,元素指的是时间数组的项,即对应进程处理的视频的起始时间 点;
步骤S2-2,初始化
Figure 655703DEST_PATH_IMAGE004
,其中,
Figure 15140DEST_PATH_IMAGE031
表示数组索引;
步骤S2-3,分析输入视频,获得视频时长
Figure 281037DEST_PATH_IMAGE006
步骤S2-4,判断i是否为0,若是,则
Figure 358714DEST_PATH_IMAGE007
,并执行步骤S2-6,若否,执行步骤 S2-5;
步骤S2-5,按照进程数目和视频时长初始化
Figure 1048DEST_PATH_IMAGE008
Figure 480571DEST_PATH_IMAGE009
,其中
Figure 917369DEST_PATH_IMAGE010
为指示函数
Figure 279080DEST_PATH_IMAGE011
中x的取值,仅当
Figure 960990DEST_PATH_IMAGE012
为真时取1,为假时取0;
例如,以
Figure 295020DEST_PATH_IMAGE032
Figure 902718DEST_PATH_IMAGE033
为例,表1为每个进程处理的视频起始时间点。
表1
0 3 6 9 12 14 16 18
步骤S2-6,令i=i+1;
步骤S2-7,判断i是否小于
Figure 954988DEST_PATH_IMAGE001
,若是,则返回步骤S2-4,若否,则执行步骤S2-8;
步骤S2-8,在状态文件中写入状态“time partition finished”。
具体而言,在所述步骤S3中,包括:
步骤S3-1,初始化关键帧号数组
Figure 673545DEST_PATH_IMAGE013
,其长度为
Figure 862081DEST_PATH_IMAGE001
,每个元素表示对应进程的视频 起始关键帧号;
步骤S3-2,初始化
Figure 640681DEST_PATH_IMAGE004
,其中,
Figure 180247DEST_PATH_IMAGE005
表示数组索引;
步骤S3-3,根据
Figure 201030DEST_PATH_IMAGE014
定位该时间点附近的关键帧,其帧号为
Figure 509652DEST_PATH_IMAGE015
,令
Figure 459154DEST_PATH_IMAGE016
,压 缩的视频流中视频帧可能依赖于前面的视频帧,而关键帧不依赖于任何其他视频帧,为保 证正确解码,需保证每个进程的起始帧为关键帧;
步骤S3-4,令i=i+1;
步骤S3-5,判断i是否小于
Figure 220436DEST_PATH_IMAGE001
,若是,则返回步骤S3-3,若否,则执行步骤S3-6;
步骤S3-6,通过MPI_Scatter操作分发进程的起始帧号和结束帧号,对于进程
Figure 546375DEST_PATH_IMAGE017
,起 始帧号
Figure 506241DEST_PATH_IMAGE018
,结束帧号为
Figure 626644DEST_PATH_IMAGE019
Figure 140802DEST_PATH_IMAGE020
),对于进程
Figure 4853DEST_PATH_IMAGE021
,其结束帧号为
Figure 518093DEST_PATH_IMAGE034
,其中,
Figure 74976DEST_PATH_IMAGE022
为总帧数。
MPI_Scatter操作为通过一个进程向同一个通信域的所有进程发送数据。
步骤S3-7,将关键帧号数组
Figure 545271DEST_PATH_IMAGE013
写入到状态文件中,并写入状态“key frame number generated”。
例如,以
Figure 213013DEST_PATH_IMAGE033
为例,将关键帧号数组
Figure 85154DEST_PATH_IMAGE013
和状态“key frame number generated” 写入到状态文件后的结果为
“time partition finished
0,100,201,302,389,475,569,689
key frame number generated”。
具体而言,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
步骤S4-5,判断j是否满足
Figure 812939DEST_PATH_IMAGE023
,若是,则执行步骤S4-6,若否,则执行 步骤S4-7;
步骤S4-6,读取第j个压缩视频帧,解码第j个压缩视频帧为原始视频帧,并对原始 视频帧重新编码,写入到临时文件中,对重新编码后的视频帧分析,若是关键帧,则将帧号j 写入到进程
Figure 36110DEST_PATH_IMAGE024
的进度文件中;
例如,发生故障后N个进程的进度文件如图2所示,每行表示一个进度文件,每个进度文件记录了故障前的最后一个关键帧号。
步骤S4-7,令j=j+1;
步骤S4-8,判断j是否大于
Figure 241963DEST_PATH_IMAGE028
,若是,则完成转码,若否,则返回步骤S4-5。
具体而言,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
MPI_Barrier操作为同步执行命令,用于所有进程的同步。
具体而言,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
Figure 732725DEST_PATH_IMAGE035
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
通过对快动进程域和慢动进程域中的各进程的转码时长进行排序并按照排列顺序对各进程进行身份标识,并将快动进程域中转码速率最快的进程与慢动进程域中转码速率最慢的进程进行匹配,以此类推,全部完成快动进程域或慢动进程域中所有进程匹配,在判定是否开启进程通信时,以两匹配的进程为基础进行判断,以使转码速率最慢的进程能够与转码速率最快的进程共享资源,并以此类推,以实现提高转码速率的目的。
具体而言,根据CPU运算速率V和数据传输速率X按照以下公式计算时间间隔参数R,设定
Figure 428149DEST_PATH_IMAGE026
其中,V0为预设运算速率,X0为预设数据传输速率。
在确定两个匹配的进程间开启通信的时间差异度时,CPU运算速率和数据传输速率为两个关键的影响因素,本发明引入间间隔参数R,其根据CPU运算速率和数据传输速率计算得出,对于确定时间差异度具有很好的表征性,当CPU运算速率和数据传输速率较快时,完成数据传输和视频转码的速度也较快,此时可将时间差异度调节为一个较小的值,当CPU运算速率和数据传输速率较慢时,完成数据传输和视频转码的速度也较慢,此时将时间差异度调节为一个较大的值,在适应CPU运算速率和数据传输速率的前提下,最大限度的提高转码效率。
具体而言,当完成间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
具体而言,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
进程通信开启后,开启通信的进程会进行数据传输以实现资源共享,本发明通过设置标准时长差值判定两个匹配的进程间是否需要开启通信,当两个匹配的进程间转码时长相差较小时,由于进程间通信需要进行数据传输,增加运算量,此时若开启进程间通信反而会增加运算时间,可能会导致更长的转码时长,此时判定不开启两个进程间通信;当两个匹配的进程间转码时长相差较大时,此时开启两个进程间通信,且当身份标识Q1f的进程完成转码时开启两个进程间通信,由于进程通信后,进程之间的隔离被打破,相匹配的两进程之间实现资源共享,若两进程之间的转码任务均未完成,则会增加转码错误的风险,此时当身份标识Q1f的进程完成转码时开启两个进程间通信,避免了转码错误的风险,同时提高了转码效率。
具体而言,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键 帧号数组
Figure 873036DEST_PATH_IMAGE013
,通过MPI_Scatter操作分起始帧号
Figure 882581DEST_PATH_IMAGE027
和结束帧号
Figure 994893DEST_PATH_IMAGE028
至其它进程,并执 行步骤S6-3,否则,执行步骤S6-6;
步骤S6-3,各个进程读取其进度文件,获得故障前转码的最后一个关键帧号
Figure 798901DEST_PATH_IMAGE029
, 删除临时文件中第
Figure 996664DEST_PATH_IMAGE029
个帧及之后的所有转码后的视频帧;
例如,假设故障前1号进程的最后一个关键帧号为50,已转码至第53帧,将50-53号视频帧删除后的结果如图3所示。
步骤S6-4,令
Figure 544320DEST_PATH_IMAGE030
步骤S6-5,执行以上转码、合并两个过程,结束;
步骤S6-6,若发生故障时
Figure 511139DEST_PATH_IMAGE013
还未生成,重新执行进程初始化、时间点数组生成、 关键帧号数组生成、转码、合并等以上所有过程。
本发明所述面向分布式集群的多节点并行视频转码方法能够完成多节点并行视频转码操作,且转码过程中发生故障可快速恢复至故障前的状态,继续转码,避免完全重新转码的开销,基于MPI实现多进程,充分利用多节点资源,显著提升视频转码性能。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种面向分布式集群的多节点并行视频转码方法,其特征在于,包括:
步骤S1,初始化进程数目和进程号,当面向分布式集群进行多节点并行视频转码时,首 先用消息传递接口MPI初始化进程数目和进程号,其中进程数目为
Figure DEST_PATH_IMAGE001
,进程号
Figure 314881DEST_PATH_IMAGE002
步骤S2,0号进程预处理输入视频,按照进程数目和视频总时长初始化视频划分时间数组;
步骤S3,0号进程定位每个时间点的关键帧号,生成关键帧号数组,并通过MPI_Scatter操作将进程的起始帧号和结束帧号分发给各个进程;
步骤S4,各个进程根据所述起始帧号和所述结束帧号完成对应视频帧序列的转码操作,并将转码后的视频序列写入到临时文件;
步骤S5,0号进程对每个进程的临时文件按序合并,得到最终转码后的视频;
在所述步骤S5中,等待所有进程转码结束时,计算所有进程平均转码时长Tp,根据平均转码时长Tp对进程划分快动进程域和慢动进程域,并将快动进程域和慢动进程域中的进程进行匹配;
以及,根据CPU运算速率V和数据传输速率X计算时间间隔参数R,并根据R确定两个匹配的进程间开启通信的时间差异度ΔTb',并根据ΔTb'判定在两个匹配的进程间是否开启通信;
步骤S6,若转码过程发生故障,则读取中间文件并恢复至故障前的状态,继续转码过程至结束。
2.根据权利要求1所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S2中,包括:
步骤S2-1,初始化视频划分时间数组
Figure DEST_PATH_IMAGE003
,其长度为
Figure 228479DEST_PATH_IMAGE001
,每个元素表示对应进程处理的 视频起始时间点;
步骤S2-2,初始化
Figure 720641DEST_PATH_IMAGE004
,其中,
Figure 165528DEST_PATH_IMAGE006
表示数组索引;
步骤S2-3,分析输入视频,获得视频时长
Figure DEST_PATH_IMAGE007
步骤S2-4,判断i是否为0,若是,则
Figure 863488DEST_PATH_IMAGE008
,并执行步骤S2-6,若否,执行步骤S2-5;
步骤S2-5,按照进程数目和视频时长初始化
Figure DEST_PATH_IMAGE009
Figure 38118DEST_PATH_IMAGE010
,其中
Figure DEST_PATH_IMAGE011
为指示函数
Figure 170022DEST_PATH_IMAGE012
中x的取值,仅当
Figure DEST_PATH_IMAGE013
为真时取1,为假时取0;
步骤S2-6,令i=i+1;
步骤S2-7,判断i是否小于
Figure 53271DEST_PATH_IMAGE001
,若是,则返回步骤S2-4,若否,则执行步骤S2-8;
步骤S2-8,在状态文件中写入状态“time partition finished”。
3.根据权利要求2所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S3中,包括:
步骤S3-1,初始化关键帧号数组
Figure 600927DEST_PATH_IMAGE014
,其长度为
Figure 426800DEST_PATH_IMAGE001
,每个元素表示对应进程的视频起始 关键帧号;
步骤S3-2,初始化
Figure 526343DEST_PATH_IMAGE004
,其中,
Figure 306343DEST_PATH_IMAGE006
表示数组索引;
步骤S3-3,根据
Figure DEST_PATH_IMAGE015
定位该时间点附近的关键帧,其帧号为
Figure 720006DEST_PATH_IMAGE016
,令
Figure DEST_PATH_IMAGE017
步骤S3-4,令i=i+1;
步骤S3-5,判断i是否小于
Figure 197124DEST_PATH_IMAGE001
,若是,则返回步骤S3-3,若否,则执行步骤S3-6;
步骤S3-6,通过MPI_Scatter操作分发进程的起始帧号和结束帧号,对于进程
Figure 966104DEST_PATH_IMAGE018
,起始帧 号
Figure DEST_PATH_IMAGE019
,结束帧号为
Figure 935197DEST_PATH_IMAGE020
Figure DEST_PATH_IMAGE021
),对于进程
Figure 277185DEST_PATH_IMAGE022
,其 结束帧号为
Figure DEST_PATH_IMAGE023
,其中,
Figure 47957DEST_PATH_IMAGE024
为总帧数;
步骤S3-7,将关键帧号数组
Figure 489303DEST_PATH_IMAGE014
写入到状态文件中,并写入状态“key frame number generated”。
4.根据权利要求3所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S4中,每个进程可以并行地执行以下步骤:
步骤S4-1,打开输入视频流;
步骤S4-2,打开临时文件;
步骤S4-3,打开进度文件;
步骤S4-4,初始化j=0,其中j为帧号;
步骤S4-5,判断j是否满足
Figure DEST_PATH_IMAGE025
,若是,则执行步骤S4-6,若否,则执行步骤 S4-7;
步骤S4-6,读取第j个压缩视频帧,解码第j个压缩视频帧为原始视频帧,并对原始视频 帧重新编码,写入到临时文件中,对重新编码后的视频帧分析,若是关键帧,则将帧号j写入 到进程
Figure 211271DEST_PATH_IMAGE026
的进度文件中;
步骤S4-7,令j=j+1;
步骤S4-8,判断j是否大于
Figure DEST_PATH_IMAGE027
,若是,则完成转码,若否,则返回步骤S4-5。
5.根据权利要求4所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S5中,调用MPI_Barrier操作,等待所有进程转码结束,0号进程依次读取每个进程的临时文件,按序合并,生成转码后的视频文件,若转码无误,则删除所有临时文件、状态文件及进度文件。
6.根据权利要求5所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S5中,等待所有进程转码结束时,对于任一进程,记录其转码时长Tk,计算所有进程平均转码时长Tp,
Figure DEST_PATH_IMAGE029
将转码时长Tk>Tp的进程划分为所述快动进程域,统计所述快动进程域中进程数量Q1,同时将转码时长Tk<Tp的进程划分为所述慢动进程域,统计所述慢动进程域中进程数量Q2,
将所述快动进程域中各进程的转码时长进行降序排列,按降序排列顺序对快动进程域中各进程进行身份标识Q1f,f的取值为1~Q1;
将所述慢动进程域中各进程的转码时长进行升序排列,按升序排列顺序对慢动进程域中各进程进行身份标识Q1p,p的取值为1~Q2;
当f=p时,将身份标识Q1f的进程和身份标识Q1p的进程进行匹配,直至所述慢动进程域中所有进程匹配完毕或所述快动进程域中所有进程匹配完毕。
7.根据权利要求6所述的面向分布式集群的多节点并行视频转码方法,其特征在于,根据CPU运算速率V和数据传输速率X按照以下公式计算时间间隔参数R,设定
Figure DEST_PATH_IMAGE031
其中,V0为预设运算速率,X0为预设数据传输速率。
8.根据权利要求7所述的面向分布式集群的多节点并行视频转码方法,其特征在于,当完成时间间隔参数R的计算时,将时间间隔参数R与预设时间间隔对比参数进行比对以确定两个匹配的进程间开启通信的时间差异度,所述预设时间间隔对比参数包括第一预设时间间隔对比参数R1和第二预设时间间隔对比参数R2,其中R1<R2,
当R≥R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb-ΔTb0×α;
当R1<R≤R2时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb;
当R<R1时,将两个匹配的进程间开启通信的时间差异度设置为ΔTb',设定ΔTb'=ΔTb+ΔTb0×α;
其中,ΔTb为预设标准时间差异度,ΔTb0预设时间差异度调整值,α为调节系数,0.1<α<0.3。
9.根据权利要求8所述的面向分布式集群的多节点并行视频转码方法,其特征在于,对于两个匹配后的进程,将身份标识Q1f的进程的转码时长记为T1,将身份标识Q1p的进程的转码时长记为T2,计算T1与T2的差值ΔT,设定ΔT=T2-T1,将ΔT与时间差异度ΔTb'进行对比,
当ΔT≤ΔTb'时,则不开启两个进程间通信;
当ΔT>ΔTb'时,则在下一次转码任务中当身份标识Q1f的进程完成转码时开启两个进程间通信。
10.根据权利要求3所述的面向分布式集群的多节点并行视频转码方法,其特征在于,在所述步骤S6中,
步骤S6-1,0号进程打开并读取状态文件,获得故障前的状态;
步骤S6-2,若状态为“key frame number generated”,则从状态文件中读取关键帧号 数组
Figure 855486DEST_PATH_IMAGE014
,通过MPI_Scatter操作分起始帧号
Figure 510458DEST_PATH_IMAGE032
和结束帧号
Figure 998071DEST_PATH_IMAGE027
至其它进程,并执行步 骤S6-3,否则,执行步骤S6-6;
步骤S6-3,各个进程读取其进度文件,获得故障前转码的最后一个关键帧号
Figure DEST_PATH_IMAGE033
,删除 临时文件中第
Figure 833434DEST_PATH_IMAGE033
个帧及之后的所有转码后的视频帧;
步骤S6-4,令
Figure 330275DEST_PATH_IMAGE034
步骤S6-5,执行以上转码、合并两个过程,结束;
步骤S6-6,若发生故障时
Figure 839754DEST_PATH_IMAGE014
还未生成,重新执行进程初始化、时间点数组生成、关键帧 号数组生成、转码、合并所有过程。
CN202211231042.7A 2022-10-10 2022-10-10 面向分布式集群的多节点并行视频转码方法 Active CN115297328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211231042.7A CN115297328B (zh) 2022-10-10 2022-10-10 面向分布式集群的多节点并行视频转码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211231042.7A CN115297328B (zh) 2022-10-10 2022-10-10 面向分布式集群的多节点并行视频转码方法

Publications (2)

Publication Number Publication Date
CN115297328A CN115297328A (zh) 2022-11-04
CN115297328B true CN115297328B (zh) 2023-01-20

Family

ID=83819456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211231042.7A Active CN115297328B (zh) 2022-10-10 2022-10-10 面向分布式集群的多节点并行视频转码方法

Country Status (1)

Country Link
CN (1) CN115297328B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104980752A (zh) * 2015-06-11 2015-10-14 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
CN108848384A (zh) * 2018-06-19 2018-11-20 复旦大学 一种面向多核平台的高效并行转码方法
CN110830805A (zh) * 2019-10-24 2020-02-21 上海网达软件股份有限公司 一种多分辨率输出的分布式文件转码方法及装置
CN112953944A (zh) * 2021-02-23 2021-06-11 北京华宇信息技术有限公司 基于MapReduce的影音转码方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10375156B2 (en) * 2015-09-11 2019-08-06 Facebook, Inc. Using worker nodes in a distributed video encoding system
US10896253B2 (en) * 2017-02-06 2021-01-19 Huawei Technologies Co., Ltd. Processor trace-based enforcement of control flow integrity of a computer system
CN113992425B (zh) * 2021-11-12 2022-09-23 北京天融信网络安全技术有限公司 一种收发网络数据包的方法、网络设备以及通信系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104980752A (zh) * 2015-06-11 2015-10-14 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
CN108848384A (zh) * 2018-06-19 2018-11-20 复旦大学 一种面向多核平台的高效并行转码方法
CN110830805A (zh) * 2019-10-24 2020-02-21 上海网达软件股份有限公司 一种多分辨率输出的分布式文件转码方法及装置
CN112953944A (zh) * 2021-02-23 2021-06-11 北京华宇信息技术有限公司 基于MapReduce的影音转码方法

Also Published As

Publication number Publication date
CN115297328A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
Mok et al. A multiframe model for real-time tasks
US6751666B1 (en) Ripple scheduling for end-to-end global resource management
Strosnider et al. The deferrable server algorithm for enhanced aperiodic responsiveness in hard real-time environments
Huang et al. Modeling and simulation of self-similar variable bit rate compressed video: A unified approach
TW201610703A (zh) 雲端中之分散式串流處理
CN110190991B (zh) 一种多应用场景下的分布式流处理系统的容错方法
CN116980569A (zh) 一种基于云计算的安全监控系统及方法
CN109189552B (zh) 虚拟网络功能扩容与缩容方法及系统
Kaur et al. Dynamic resource allocation for big data streams based on data characteristics (5 V s)
Wang et al. A cluster autoscaler based on multiple node types in kubernetes
Toma et al. Computation offloading for real-time systems
CN115297328B (zh) 面向分布式集群的多节点并行视频转码方法
CN110516738B (zh) 一种分布式比对聚类方法、装置、电子设备及存储介质
CN108595250B (zh) 一种面向IaaS云平台的资源调度效率优化方法及系统
CN114281508A (zh) 一种数据批流融合离线计算方法
Ye et al. Eco-FL: Adaptive federated learning with efficient edge collaborative pipeline training
Paun et al. Incremental checkpoint schemes for Weibull failure distribution
Jiang et al. Efficient admission control algorithms for multimedia servers
CN116627660A (zh) 一种基于云数据中心的微服务资源配置方法
CN113901141B (zh) 一种分布式数据同步方法及系统
Venkatasubramanian et al. E ective load management for scalable video servers
Wang et al. An adaptive elasticity policy for staging based in-situ processing
CN111158898A (zh) 针对输变电工程场地布置标准化的bim数据处理方法及装置
Teranishi et al. A sensor data stream recovery scheme for event-driven IoT applications
CN115002514B (zh) 基于云原生控制器的spark视频转码系统及视频转码方法

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
GR01 Patent grant
GR01 Patent grant