CN113660496A - 基于多核并行的视频流解码方法及装置 - Google Patents

基于多核并行的视频流解码方法及装置 Download PDF

Info

Publication number
CN113660496A
CN113660496A CN202110785222.9A CN202110785222A CN113660496A CN 113660496 A CN113660496 A CN 113660496A CN 202110785222 A CN202110785222 A CN 202110785222A CN 113660496 A CN113660496 A CN 113660496A
Authority
CN
China
Prior art keywords
decoding
video stream
target video
cores
decoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110785222.9A
Other languages
English (en)
Other versions
CN113660496B (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.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology 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 Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN202110785222.9A priority Critical patent/CN113660496B/zh
Publication of CN113660496A publication Critical patent/CN113660496A/zh
Application granted granted Critical
Publication of CN113660496B publication Critical patent/CN113660496B/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/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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于多核并行的视频流解码方法及装置,该方法包括:获取待解码的目标视频流;根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。可见,本发明能够生成用于驱动多个解码器核心的解码指令,来驱使多个解码器核心并行对视频数据进行同步解码,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。

Description

基于多核并行的视频流解码方法及装置
技术领域
本发明涉及视频解码技术领域,尤其涉及一种基于多核并行的视频流解码方法及装置。
背景技术
随着国家大力推动高清视频产业发展,高清视频解码技术逐渐成为各个视频芯片厂商的研发重点,近年来,多个业内主要的芯片厂商连续推出了多款视频解码芯片,并逐步实现高分辨率和高帧率的解码效果。
但现有的高清视频解码技术所采取的芯片架构,虽然部分实现了多核并行解码,但大部分均被受限于其编码架构和码流特性而导致无法达到完全独立的并行解码,且存在解码性能差,通用性不高等缺陷,亟待解决。
发明内容
本发明所要解决的技术问题在于,提供一种基于多核并行的视频流解码方法及装置,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。
为了解决上述技术问题,本发明第一方面公开了一种基于多核并行的视频流解码方法,所述方法包括:
获取待解码的目标视频流;
根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。
作为一个可选的实施方式,在本发明第一方面中,所述根据所述目标视频流,生成多个解码器核心对应的解码指令,包括:
根据所述目标视频流,确定所述目标视频流对应的解码参数;
根据所述解码参数,生成多个解码器核心对应的解码指令。
作为一个可选的实施方式,在本发明第一方面中,所述根据所述目标视频流,确定所述目标视频流对应的解码参数,包括:
根据所述目标视频流,生成多个解析器核心对应的解析指令;所述解析指令用于指示每一所述解析器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解析,以得到解码参数。
作为一个可选的实施方式,在本发明第一方面中,所述解码参数包括行首编码单元参数、行尾编码单元参数和编码结构边界参数中的一种或多种;所述行首编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的首个编码单元的参数;所述行尾编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的最后一个编码单元的参数;所述编码结构边界参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元上的编码结构边界。
作为一个可选的实施方式,在本发明第一方面中,所述解析器核心的数量与所述解码器核心的数量相同;和/或,每一解析器核心所解析的一行编码单元与一个所述解码器核心所解码的一行编码单元相对应;和/或,所述解析指令还用于指示所有所述解析器核心的解析操作同步进行。
作为一个可选的实施方式,在本发明第一方面中,所述目标视频流为HEVC格式的视频流;和/或,所述编码单元为编码树单元。
作为一个可选的实施方式,在本发明第一方面中,所述编码结构边界为Tile块边界和/或Slice片边界。
本发明第二方面公开了一种基于多核并行的视频流解码装置,所述装置包括:
获取模块,用于获取待解码的目标视频流;
生成模块,用于根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。
作为一个可选的实施方式,在本发明第二方面中,所述生成模块包括:
参数确定单元,用于根据所述目标视频流,确定所述目标视频流对应的解码参数;
解码单元,用于根据所述解码参数,生成多个解码器核心对应的解码指令。
作为一个可选的实施方式,在本发明第二方面中,所述参数确定单元根据所述目标视频流,确定所述目标视频流对应的解码参数的具体方式,包括:
根据所述目标视频流,生成多个解析器核心对应的解析指令;所述解析指令用于指示每一所述解析器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解析,以得到解码参数。
作为一个可选的实施方式,在本发明第二方面中,所述解码参数包括行首编码单元参数、行尾编码单元参数和编码结构边界参数中的一种或多种;所述行首编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的首个编码单元的参数;所述行尾编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的最后一个编码单元的参数;所述编码结构边界参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元上的编码结构边界。
作为一个可选的实施方式,在本发明第二方面中,所述解析器核心的数量与所述解码器核心的数量相同;和/或,每一解析器核心所解析的一行编码单元与一个所述解码器核心所解码的一行编码单元相对应;和/或,所述解析指令还用于指示所有所述解析器核心的解析操作同步进行。
作为一个可选的实施方式,在本发明第二方面中,所述目标视频流为HEVC格式的视频流;和/或,所述编码单元为编码树单元。
作为一个可选的实施方式,在本发明第二方面中,所述编码结构边界为Tile块边界和/或Slice片边界。
本发明第三方面公开了另一种基于多核并行的视频流解码装置,所述装置包括解码芯片,所述解码芯片被配置为执行本发明实施例第一方面公开的基于多核并行的视频流解码方法中的部分或全部步骤。
本发明第四方面公开了又一种基于多核并行的视频流解码装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的基于多核并行的视频流解码方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,获取待解码的目标视频流;根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。可见,本发明能够生成用于驱动多个解码器核心的解码指令,来驱使多个解码器核心并行对视频数据进行同步解码,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种基于多核并行的视频流解码方法的流程示意图;
图2是本发明实施例公开的一种基于多核并行的视频流解码装置的结构示意图;
图3是本发明实施例公开的另一种基于多核并行的视频流解码装置的结构示意图;
图4是本发明实施例公开的现有的WPP架构的解码示意图;
图5是本发明实施例公开的现有的Frame架构的解码示意图;
图6是本发明实施例公开的现有的Tile架构的解码示意图;
图7是本发明实施例公开的现有的Slice架构的解码示意图;
图8是本发明实施例公开的芯片架构实施方案的架构示意图;
图9是本发明实施例公开的解码器模块的状态机示意图;
图10是本发明实施例公开的解码器模块的4个解码器核心的解码示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先对本发明实施例中涉及的名词缩写进行解释:
HEVC:High Efficiency Video Coding,高效率视频编码,又称为H.265和MPEG-H第2部分,是一种视频压缩标准,其被认为不仅提升影像质量,同时也能达到H.264/MPEG-4AVC两倍之压缩率(等同于同样画面质量下比特率减少到了50%),可支持4K清晰度甚至到超高清电视(UHDTV),最高清晰度可达到8192×4320(8K清晰度)。
CTU:Coding Tree Unit,编码树单元,是HEVC码流的基本编解码单元。
8K@60fps@10bit:像素为10bit,8K分辨率下每秒可以解码60帧。
WPP:Wave-front Parallel Processing,波前并行处理,是一种可以进行并行编解码的码流格式或模式。
Entry-point:进入点,WPP码流中固有的一种码流特性,其中,Entry-point的个数决定了WPP码流解码器可以并行的个数。
Tile:tile块,是HEVC码流固有的一种划分格式,一般为规则的矩形。
Slice:slice片,是HEVC码流固有的一种划分格式,一般为规则或不规则的条形或带形。
SS:Slice_segment,由一个或多个CTU组成,同一个SS内的CTU具有一定的相关性。
在阐述本发明的实施例前,先对本发明所针对改进的现有的视频解码技术中的部分进行解释,以明晰本发明的改进之处。现有的视频解码技术,主要包括WPP(Wave-frontParallel Processing,波前并行处理)架构、Frame架构、Tile架构和Slice架构这几种解码技术架构,接下来对几种现有架构进行阐述:
1、WPP架构:该种架构以CTU为基本解码单元,是否可以实现并行解码取决于WPP码流中的Entry-point点。具体的,参照图4,该码流的Entry-point个数为2,即可以同时并行解码两行(解码器0负责解码第一行CTU,解码器1负责解码第二行CTU),同时,Entry-point-offset等于2,说明下行解码的启动时间要比上行晚两个CTU。该种架构从外部看是按照CTU行进行并行解码,但该种架构严重依赖码流特性,即启动几个解码器需要看WPP码流中有多少Entry-point点,易用性较差且解码性能不足。
2、Frame架构:该种架构通过每个解码器解码一帧图像来实现并行效果,但受限于图像的帧间参考关系,当前帧参考块如果在上一帧还未解出时则需要等待,因此,该架构的解码性能不能满足要求。如图5所示,当前帧解码至第三行时,由于解码块需要参考上一帧第六行对应解码块的信息,如果此时上一帧对应解码块还未解出,则当前帧的解码过程就会停止,等待对应上一帧对应解码块解码完成之后才能继续进行。同理,下一帧第一行的解码块由于需要参考它的上一帧参考块信息,解码过程也会停止,这对并行解码性能有非常大的影响。
3、Tile架构:该种架构通过每个核解码一个Tile达到并行效果,但和WPP架构类似,Tile架构对码流特性要求较高,参照图6左侧,对AV1等完全按照Tile进行划分的视频标准来说,由于各Tile之间是完全独立的,按照Tile并行架构可以实现并行解码。但对于HEVC码流来说,Slice和Tile划分模式并存,一个Slice或一个SS内有可能会包含多个Tile,此时每个Tile之间并不是独立解码,参照图6右侧,Slice1中包含四个Tile,这四个Tile之间存在相互参考关系,Tile1需要等待Tile0完全解码完成之后才能启动,因此不能实现并行解码效果。其次,对于HEVC码流来说,如果做成Tile并行解码架构,带宽是WPP架构下的至少2倍,还需增加缓存和控制单元设计等额外成本,硬件设计复杂度会大幅增加。
4、Slice架构:该种架构通过每个核解码一个Slice达到并行效果,但和WPP架构类似,Slice架构也严重依赖于码流特性。对HEVC码流来说,Slice的划分并不规律,如果不是按行进行划分,则该种架构也同样不能达到完全并行的效果,解码性能同样不足。参照图7,图7左侧的Slice的划分方式就不能实现并行解码,原因是slice1的首个CTU需要参考slice0的最后一个CTU,在Slice0解码完成之前Slice1不能启动。但如果该码流是按照如图7右侧的Slice规则划分,则可以使用Slice并行架构。可见,码流特性决定了Slice架构是否可以实现并行,因此不具有通用性。
针对上述公开的现有的视频解码技术的缺陷,本发明公开了一种基于多核并行的视频流解码方法及装置,能够生成用于驱动多个解码器核心的解码指令,来驱使多个解码器核心并行对视频数据进行同步解码,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种基于多核并行的视频流解码方法的流程示意图。其中,图1所描述的方法可以应用于相应的视频解码设备、视频解码终端、视频解码服务器中,且该服务器可以是本地服务器,也可以是云服务器,本发明实施例不做限定。如图1所示,该基于多核并行的视频流解码方法可以包括以下操作:
101、获取待解码的目标视频流。
本发明实施例中,目标视频流可以实时传输的视频流,或是本地储存的视频流。
102、根据目标视频流,生成多个解码器核心对应的解码指令。
本发明实施例中,解码指令用于指示每一解码器核心对目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码,可选的,解码指令还用于指示所有解码器核心的解码操作同步进行。通过这样设置,多个解码器核心可以对多行编码单元进行并行同步的解码,而不需要受到码流特性的限制。
本发明实施例中,解码器核心用于指代一个独立的数据解码处理单元,可选的,多个解码器核心可以为集成封装在一个集成电路中以形成解码处理器的形式,也可以为分别独立封装在不同的集成电路中,本发明不做限定。可选的,解码器核心的数量可以为4个,可选的,多个解码器核心也可以被宏定义例化,例如例化为单核解码器,其同样可以与其他单核的处理***适配。
优选的,目标视频流为HEVC格式的视频流。可选的,编码单元为编码树单元,也即CTU。相应的,解码器核心对编码单元CTU执行的解码操作为H.265解码操作。可选的,本发明并不意于限定目标视频流的编码格式,例如AV1(AOMedia Video 1)格式或是VP9格式的视频流也可以应用本方案,实际上任何将每一帧视频数据在光栅顺序上以编码单元进行编码的视频流格式,均应被认为包括在本发明的保护范围之中。
可见,实施本发明实施例所描述的方法能够生成用于驱动多个解码器核心的解码指令,来驱使多个解码器核心并行对视频数据进行同步解码,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。
在一个可选的实施方式中,步骤102中的,根据目标视频流,生成多个解码器核心对应的解码指令,包括:
根据目标视频流,确定目标视频流对应的解码参数;
根据解码参数,生成多个解码器核心对应的解码指令。
本发明实施例中,解码参数用于指示解码器核心对目标视频流进行解码时所依据的视频流的编码单元的参数,例如编码单元的位置、编码格式等信息,以使得解码器核心能够准确获知当前所要处理的编码单元的相关参数。
可见,通过实现该可选的实施方式,可以确定出目标视频流对应的解码参数,并根据解码参数来生成多个解码器核心对应的解码指令,从而可以使得生成的解码指令更加准确,有利于驱使多个解码器核心并行对视频数据进行同步解码,达到更加优秀的解码效果。
在一个可选的实施方式中,上述步骤中的,根据目标视频流,确定目标视频流对应的解码参数,包括:
根据目标视频流,生成多个解析器核心对应的解析指令。
本发明实施例中,解析指令用于指示每一解析器核心对目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解析,以得到解码参数。
本发明实施例中,解析器核心用于指代一个独立的数据解析处理单元,可选的,多个解析器核心可以为集成封装在一个集成电路中以形成解析处理器的形式,也可以为分别独立封装在不同的集成电路中,本发明不做限定。
优选的,解析指令还用于指示所有解析器核心的解析操作同步进行,从而实现了多核并行解析,以与后续多个解码器核心的多核并行解码操作相匹配,且可以大大提高解析的效率。
可见,通过实现该可选的实施方式,可以根据目标视频流生成多个解析器核心对应的解析指令,从而可以驱使多个解析器核心对视频数据进行解析以得到分别的解码参数,有利于后续根据解码参数进行多核并行解码操作更精确且高效地进行,以达到更加优秀的解码效果。
在一个可选的实施方式中,解码参数包括行首编码单元参数、行尾编码单元参数和编码结构边界参数中的一种或多种。其中,行首编码单元参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的首个编码单元的参数,行尾编码单元参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的最后一个编码单元的参数,编码结构边界参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元上的编码结构边界。
可选的,编码结构可以为Tile结构或Slice结构,而相应的,编码结构边界可以为Tile块边界和/或Slice片边界,通过这样设置,在解码HEVC格式的视频流时,由于每一行CTU可能存在Tile块边界和/或Slice片边界,解码器核心可以跨越这些边界进行解码,不会受到限制。
可见,通过实现该可选的实施方式,解析器核心解析得到的解码参数中包括有关键的编码单元参数和编码结构边界信息,可以使得生成的解码指令驱使多个解码器核心更高效地并行对视频数据进行同步解码,且可以使得解码器核心在解码时跨越编码结构边界,从而实现了突破码流特性和编码格式的限制,以实现完全意义上的并行解码。
在一个可选的实施方式中,解析器核心的数量与解码器核心的数量相同,从而在适当地调度下,解析器核心可以适配于对应的解码器核心的工作,建立起对应的解析器核心和解码器核心之间的数据传输关系,以提高解码的效率。
在一个可选的实施方式中,每一解析器核心所解析的一行编码单元与一个解码器核心所解码的一行编码单元相对应,从而可以进一步地建立起对应的解析器核心和解码器核心之间的数据传输关系,使得多个解析器核心所构成的整体在数据解析能力上,与多个解码器核心所构成的整体的数据解码能力相匹配,以提高解码的效率。
实施例二
请参阅图2,图2是本发明实施例公开的一种基于多核并行的视频流解码装置的结构示意图。其中,图2所描述的装置可以应用于相应的视频解码设备、视频解码终端、视频解码服务器中,且该服务器可以是本地服务器,也可以是云服务器,本发明实施例不做限定。如图2所示,该装置可以包括:
获取模块201,用于获取待解码的目标视频流。
本发明实施例中,目标视频流可以实时传输的视频流,或是本地储存的视频流。
生成模块202,用于根据目标视频流,生成多个解码器核心对应的解码指令。
本发明实施例中,解码指令用于指示每一解码器核心对目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码,可选的,解码指令还用于指示所有解码器核心的解码操作同步进行。通过这样设置,多个解码器核心可以对多行编码单元进行并行同步的解码,而不需要受到码流特性的限制。
本发明实施例中,解码器核心用于指代一个独立的数据解码处理单元,可选的,多个解码器核心可以为集成封装在一个集成电路中以形成解码处理器的形式,也可以为分别独立封装在不同的集成电路中,本发明不做限定。可选的,解码器核心的数量可以为4个,可选的,多个解码器核心也可以被宏定义例化,例如例化为单核解码器,其同样可以与其他单核的处理***适配。
优选的,目标视频流为HEVC格式的视频流。可选的,编码单元为编码树单元,也即CTU。相应的,解码器核心对编码单元CTU执行的解码操作为H.265解码操作。可选的,本发明并不意于限定目标视频流的编码格式,例如AV1(AOMedia Video 1)格式或是VP9格式的视频流也可以应用本方案,实际上任何将每一帧视频数据在光栅顺序上以编码单元进行编码的视频流格式,均应被认为包括在本发明的保护范围之中。
可见,实施本发明实施例所描述的装置能够生成用于驱动多个解码器核心的解码指令,来驱使多个解码器核心并行对视频数据进行同步解码,相对于现有的视频解码技术,可以突破码流特性和编码格式的限制,达到更加优秀的解码效果,实现了完全意义上的并行解码。
作为一个可选的实施方式,生成模块202包括:
参数确定单元,用于根据目标视频流,确定目标视频流对应的解码参数;
解码单元,用于根据解码参数,生成多个解码器核心对应的解码指令。
本发明实施例中,解码参数用于指示解码器核心对目标视频流进行解码时所依据的视频流的编码单元的参数,例如编码单元的位置、编码格式等信息,以使得解码器核心能够准确获知当前所要处理的编码单元的相关参数。
可见,通过实现该可选的实施方式,可以确定出目标视频流对应的解码参数,并根据解码参数来生成多个解码器核心对应的解码指令,从而可以使得生成的解码指令更加准确,有利于驱使多个解码器核心并行对视频数据进行同步解码,达到更加优秀的解码效果。
作为一个可选的实施方式,参数确定单元根据目标视频流,确定目标视频流对应的解码参数的具体方式,包括:
根据目标视频流,生成多个解析器核心对应的解析指令。
本发明实施例中,解析指令用于指示每一解析器核心对目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解析,以得到解码参数。
本发明实施例中,解析器核心用于指代一个独立的数据解析处理单元,可选的,多个解析器核心可以为集成封装在一个集成电路中以形成解析处理器的形式,也可以为分别独立封装在不同的集成电路中,本发明不做限定。
优选的,解析指令还用于指示所有解析器核心的解析操作同步进行,从而实现了多核并行解析,以与后续多个解码器核心的多核并行解码操作相匹配,且可以大大提高解析的效率。
可见,通过实现该可选的实施方式,可以根据目标视频流生成多个解析器核心对应的解析指令,从而可以驱使多个解析器核心对视频数据进行解析以得到分别的解码参数,有利于后续根据解码参数进行多核并行解码操作更精确且高效地进行,以达到更加优秀的解码效果。
作为一个可选的实施方式,解码参数包括行首编码单元参数、行尾编码单元参数和编码结构边界参数中的一种或多种。其中,行首编码单元参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的首个编码单元的参数,行尾编码单元参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的最后一个编码单元的参数,编码结构边界参数用于指示目标视频流的每一帧视频数据在光栅顺序上的一行编码单元上的编码结构边界。
可选的,编码结构可以为Tile结构或Slice结构,而相应的,编码结构边界可以为Tile块边界和/或Slice片边界,通过这样设置,在解码HEVC格式的视频流时,由于每一行CTU可能存在Tile块边界和/或Slice片边界,解码器核心可以跨越这些边界进行解码,不会受到限制。
可见,通过实现该可选的实施方式,解析器核心解析得到的解码参数中包括有关键的编码单元参数和编码结构边界信息,可以使得生成的解码指令驱使多个解码器核心更高效地并行对视频数据进行同步解码,且可以使得解码器核心在解码时跨越编码结构边界,从而实现了突破码流特性和编码格式的限制,以实现完全意义上的并行解码。
在一个可选的实施方式中,解析器核心的数量与解码器核心的数量相同,从而在适当地调度下,解析器核心可以适配于对应的解码器核心的工作,建立起对应的解析器核心和解码器核心之间的数据传输关系,以提高解码的效率。
在一个可选的实施方式中,每一解析器核心所解析的一行编码单元与一个解码器核心所解码的一行编码单元相对应,从而可以进一步地建立起对应的解析器核心和解码器核心之间的数据传输关系,使得多个解析器核心所构成的整体在数据解析能力上,与多个解码器核心所构成的整体的数据解码能力相匹配,以提高解码的效率。
实施例三
请参阅图3,图3是本发明实施例公开的另一种基于多核并行的视频流解码装置的结构示意图。如图3所示,该装置可以包括:
存储有可执行程序代码的存储器301;
与存储器301耦合的处理器302;
处理器302调用存储器301中存储的可执行程序代码,执行本发明实施例一公开的基于多核并行的视频流解码方法中的部分或全部步骤。
实施例四
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一公开的基于多核并行的视频流解码方法中的部分或全部步骤。
实施例五
本发明实施例公开了又一种基于多核并行的视频流解码装置,该装置包括解码芯片,该解码芯片被配置为执行本发明实施例一的基于多核并行的视频流解码方法中的部分或全部步骤。可选的,该解码芯片可以包括有解码器模块和解析器模块,其中解码器模块可以包括有多个解码器核心,解析器模块可以包括有多个对应的解析器核心。
可选的,解析器模块用于执行本发明实施例一的方法所生成的解析指令以对视频流进行解析,而解码器模块用于执行本发明实施例一的方法所生成的解码指令以对视频流进行解码,以实现视频解码。
以下,对本发明实施例公开的解码芯片的一种具体的芯片架构实施方案进行阐述,该方案采用4核并行处理方案,即包括有四个解码器核心所组成的解码器模块和四个解析器核心所组成的解析器模块,每个解码器核心或解析器核心负责一行CTU的解码或解析。解码器模块和解析器模块的所有数据通过DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器)进行交互,其架构示意图可以参照图8所示。其中,解码器模块和解析器模块均通过MBus(meter bus,仪表总线)接口与DDR进行数据交互,也均通过AHB(Advanced HighPerformance Bus,高级高性能总线)接口与控制软件进行数据传递,具体的,解码器模块自带一级缓存,以提高处理性能。
具体的,解析器模块中四个解析器核心在不同帧视频数据间并行解析,此时控制软件通过AHB总线串行配置和操作硬件,因此四个解析器核心复用一套AHB总线接口,内部再通过地址空间的范围进行仲裁,得到四个解析器核心分别的选择信号。具体的,对于解析器模块所连接的MBus总线,四个解析器核心也先在内部进行仲裁,顶层模块只保留一套MBus总线接口。由于四个解析器核心采用帧间并行,因此每个解析器核心都有自己的中断信号(也即图中的int0~int3),优选的,可以经过合并输出一个中断信号ve_int_pre。
具体的,解码器模块采用一帧视频数据内多个解码器核心并行解码的方案,即每个解码器核心负责一行CTU的解码,当解码完当前帧视频数据的最后一个CTU时,上报解码器模块的中断信号ve_int。具体的,解码器模块在进行CTU行级解析时,需要知道每行第一个CTU对应码流的起始位置、tile左边界信息、行尾最后一个CTU对应的QP值等信息,这些信息都需要解析器模块解析得到。由于解码器模块采用多核并行的架构,因此解析器模块也要采用多核并行的架构,以完成性能的匹配。
具体的,解码器模块内可宏定义实现多核并行H.265解码,各解码器核心均划为三级流水,VLD(Variable Length Decoding,可变长解码)单元为第一级,MVP(Motion VectorPrediction,运动矢量预测)单元为第二级,BK(back,后处理)单元为第三级,三个流水级单元之间均按照CTU为单位进行交互,更具体的,解码器核心还包括IQIT(反量化)模块,其中,VLD单元与IQIT模块之间以blk32格式的数据流进行交互,BK单元的内部子模块,包括预测(pred)模块、采样自适应补偿(sao)模块、去块滤波(deblk)模块和写回(wb)模块之间以blk16格式的数据流进行交互。所有解码器核心的控制过程一致,一旦某个解码器核心被启动,就会按照光栅顺序处理完帧内划分到该解码器核心的所有CTU行,当所有被激活的解码器核心全部处理完,也即当前帧解码完成,会反馈给顶层结束中断。
具体的,解码器模块的状态机可以参照图9,其中,IDLE为空闲状态,此时解码器模块未启动,随即当前解码器核心被激活后,解码器模块进入SRAM_INTI状态,此时会进行所有缓存的清零工作,在正式进行解码CTU之前,会首先进入PARA_RD状态,此时硬件会进行相应解码参数信息的读取。由于数据已从DDR中预取,因此这个过程只进行从缓存中取数,时间开销很小,参数读取完毕后进入DEC_CTU状态完成CTU的解码过程,在解码器模块解码了帧内所有CTU后,或者熵解码遇到error情况时,会进入WAIT_IDLE状态,直到正常时整个流水完全结束,或者遇到解码异常进入IDLE状态,等到下一帧解码开始。
具体的,解码器模块的4个解码器核心的解码示意图可以参照图10,其中,每个解码器核心处理光栅顺序上的一整行CTU,允许跨越Slice片边界和Tile块边界,图中粗线表示Tile块边界,而虚线表示Slice片边界,如图10所示,四个解码器核心,core0-core3都会跨越Tile边界,例如core1这一解码器核心在处理第二个Tile时会跨越Slice片边界,core2这一解码器核心在解第一个Tile的时候会跨越Slice片边界,core3这一解码器核心在解第三个Tile的时候会跨越Slice片边界。
本具体实施方案在实际试验中取得了良好的效果,经过前期开发和验证测试,已经证明了架构是切实可行的,芯片面积、性能、带宽数据均满足设计需求。其中双核性能损失平均小于5%,四核性能损失平均小于20%,双核和四核性能损失优于竞争对手,其H.265解码性能达到可以达到8K@60fps@10bit。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种基于多核并行的视频流解码方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

Claims (10)

1.一种基于多核并行的视频流解码方法,其特征在于,所述方法包括:
获取待解码的目标视频流;
根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。
2.根据权利要求1所述的基于多核并行的视频流解码方法,其特征在于,所述根据所述目标视频流,生成多个解码器核心对应的解码指令,包括:
根据所述目标视频流,确定所述目标视频流对应的解码参数;
根据所述解码参数,生成多个解码器核心对应的解码指令。
3.根据权利要求2所述的基于多核并行的视频流解码方法,其特征在于,所述根据所述目标视频流,确定所述目标视频流对应的解码参数,包括:
根据所述目标视频流,生成多个解析器核心对应的解析指令;所述解析指令用于指示每一所述解析器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解析,以得到解码参数。
4.根据权利要求2所述的基于多核并行的视频流解码方法,其特征在于,所述解码参数包括行首编码单元参数、行尾编码单元参数和编码结构边界参数中的一种或多种;所述行首编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的首个编码单元的参数;所述行尾编码单元参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元的最后一个编码单元的参数;所述编码结构边界参数用于指示所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元上的编码结构边界。
5.根据权利要求3所述的基于多核并行的视频流解码方法,其特征在于,所述解析器核心的数量与所述解码器核心的数量相同;和/或,每一解析器核心所解析的一行编码单元与一个所述解码器核心所解码的一行编码单元相对应;和/或,所述解析指令还用于指示所有所述解析器核心的解析操作同步进行。
6.根据权利要求1所述的基于多核并行的视频流解码方法,其特征在于,所述目标视频流为HEVC格式的视频流;和/或,所述编码单元为编码树单元。
7.根据权利要求4所述的基于多核并行的视频流解码方法,其特征在于,所述编码结构边界为Tile块边界和/或Slice片边界。
8.一种基于多核并行的视频流解码装置,其特征在于,所述装置包括:
获取模块,用于获取待解码的目标视频流;
生成模块,用于根据所述目标视频流,生成多个解码器核心对应的解码指令;所述解码指令用于指示每一所述解码器核心对所述目标视频流的每一帧视频数据在光栅顺序上的一行编码单元进行解码;所述解码指令还用于指示所有所述解码器核心的解码操作同步进行。
9.一种基于多核并行的视频流解码装置,其特征在于,所述装置包括解码芯片,所述解码芯片被配置为执行如权利要求1-7任一项所述的基于多核并行的视频流解码方法。
10.一种基于多核并行的视频流解码装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的基于多核并行的视频流解码方法。
CN202110785222.9A 2021-07-12 2021-07-12 基于多核并行的视频流解码方法及装置 Active CN113660496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110785222.9A CN113660496B (zh) 2021-07-12 2021-07-12 基于多核并行的视频流解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110785222.9A CN113660496B (zh) 2021-07-12 2021-07-12 基于多核并行的视频流解码方法及装置

Publications (2)

Publication Number Publication Date
CN113660496A true CN113660496A (zh) 2021-11-16
CN113660496B CN113660496B (zh) 2024-06-07

Family

ID=78490013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110785222.9A Active CN113660496B (zh) 2021-07-12 2021-07-12 基于多核并行的视频流解码方法及装置

Country Status (1)

Country Link
CN (1) CN113660496B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117395437A (zh) * 2023-12-11 2024-01-12 沐曦集成电路(南京)有限公司 一种基于异构计算的视频编解码方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004056937A1 (en) * 2002-12-20 2004-07-08 Avecia Limited Electronic devices
CN104980764A (zh) * 2014-04-14 2015-10-14 深圳中兴力维技术有限公司 基于复杂度均衡的并行编解码方法、装置及***
CN105992008A (zh) * 2016-03-30 2016-10-05 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码算法
US9973748B1 (en) * 2013-04-26 2018-05-15 Mediatek Inc. Multi-core video decoder system for decoding multiple coding rows by using multiple video decoder cores and related multi-core video decoding method
CN108449603A (zh) * 2018-03-22 2018-08-24 南京邮电大学 基于多核平台多层次任务级与数据级并行的hevc解码方法
CN110337002A (zh) * 2019-08-15 2019-10-15 南京邮电大学 一种在多核处理器平台上hevc多层次高效并行解码算法
CN112422984A (zh) * 2020-10-26 2021-02-26 眸芯科技(上海)有限公司 多核解码***的码流预处理装置、***及方法
CN112422983A (zh) * 2020-10-26 2021-02-26 眸芯科技(上海)有限公司 通用多核并行解码器***及其应用
CN112468821A (zh) * 2020-10-27 2021-03-09 南京邮电大学 基于hevc核心模块的并行解码方法、装置及介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004056937A1 (en) * 2002-12-20 2004-07-08 Avecia Limited Electronic devices
US9973748B1 (en) * 2013-04-26 2018-05-15 Mediatek Inc. Multi-core video decoder system for decoding multiple coding rows by using multiple video decoder cores and related multi-core video decoding method
CN104980764A (zh) * 2014-04-14 2015-10-14 深圳中兴力维技术有限公司 基于复杂度均衡的并行编解码方法、装置及***
CN105992008A (zh) * 2016-03-30 2016-10-05 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码算法
CN108449603A (zh) * 2018-03-22 2018-08-24 南京邮电大学 基于多核平台多层次任务级与数据级并行的hevc解码方法
CN110337002A (zh) * 2019-08-15 2019-10-15 南京邮电大学 一种在多核处理器平台上hevc多层次高效并行解码算法
CN112422984A (zh) * 2020-10-26 2021-02-26 眸芯科技(上海)有限公司 多核解码***的码流预处理装置、***及方法
CN112422983A (zh) * 2020-10-26 2021-02-26 眸芯科技(上海)有限公司 通用多核并行解码器***及其应用
CN112468821A (zh) * 2020-10-27 2021-03-09 南京邮电大学 基于hevc核心模块的并行解码方法、装置及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117395437A (zh) * 2023-12-11 2024-01-12 沐曦集成电路(南京)有限公司 一种基于异构计算的视频编解码方法、装置、设备及介质
CN117395437B (zh) * 2023-12-11 2024-04-05 沐曦集成电路(南京)有限公司 一种基于异构计算的视频编解码方法、装置、设备及介质

Also Published As

Publication number Publication date
CN113660496B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
CN105794206B (zh) 用于重建视频的自适应环路滤波方法
US20170302935A1 (en) Predictive Coding/Decoding Method, Corresponding Coder/Decoder, and Electronic Device
US20180035123A1 (en) Encoding and Decoding of Inter Pictures in a Video
EP3697087A1 (en) Method for picture segmentation using columns
US9992456B2 (en) Method and apparatus for hypothetical reference decoder conformance error detection
CN104025594A (zh) 视频编码中的瓦片大小
US11202102B2 (en) Optimized edge order for de-blocking filter
US20110216827A1 (en) Method and apparatus for efficient encoding of multi-view coded video data
EP4262203A1 (en) Method and apparatus for video predictive coding
US20240098310A1 (en) Encoding method, real-time communication method, apparatus, device, and storage medium
US8090028B2 (en) Video deblocking memory utilization
CN113660496A (zh) 基于多核并行的视频流解码方法及装置
CN110300302B (zh) 一种视频编码方法、装置和存储介质
CN115134629A (zh) 视频传输方法、***、设备及存储介质
US10027969B2 (en) Parallel decoder with inter-prediction of video pictures
KR20050078706A (ko) 메모리 액세스 방법 및 메모리 액세스 장치
US20170034522A1 (en) Workload balancing in multi-core video decoder
US20160261875A1 (en) Video stream processing method and video processing apparatus thereof
WO2024098821A1 (zh) Av1的滤波方法及装置
CN114374848B (zh) 一种视频编码优化方法和***
CN112422983B (zh) 通用多核并行解码器***及其应用
US20220217399A1 (en) Prediction method for current block and electronic device
US20110216838A1 (en) Method and apparatus for efficient decoding of multi-view coded video data
CN113542763B (zh) 高效的视频解码方法及解码器
US8284836B2 (en) Motion compensation method and apparatus to perform parallel processing on macroblocks in a video decoding system

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