CN106210728A - 用于视频解码的电路、方法和视频解码器 - Google Patents

用于视频解码的电路、方法和视频解码器 Download PDF

Info

Publication number
CN106210728A
CN106210728A CN201510171047.9A CN201510171047A CN106210728A CN 106210728 A CN106210728 A CN 106210728A CN 201510171047 A CN201510171047 A CN 201510171047A CN 106210728 A CN106210728 A CN 106210728A
Authority
CN
China
Prior art keywords
transcoding
stream
entropy
frame
decoding
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
CN201510171047.9A
Other languages
English (en)
Other versions
CN106210728B (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.)
LAN to electronic technology (Chengdu) Co., Ltd.
Shanghai Lanshi Semiconductor Co., Ltd.
Original Assignee
Acrospeed Inc
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 Acrospeed Inc filed Critical Acrospeed Inc
Priority to CN201510171047.9A priority Critical patent/CN106210728B/zh
Priority to US14/690,490 priority patent/US9948941B2/en
Publication of CN106210728A publication Critical patent/CN106210728A/zh
Application granted granted Critical
Publication of CN106210728B publication Critical patent/CN106210728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/423Methods 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 characterised by memory arrangements
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

本发明涉及用于视频解码的电路、方法和视频解码器。用于解码视频的电路包括:至少一个熵转码器,被配置为对所接收的比特流执行至少一个熵转码,以生成转码流,其中该熵转码包括对该比特流的语法转码;至少一个主解码单元,被配置为对该转码流的一帧执行至少一个转码流解压缩和像素解码。

Description

用于视频解码的电路、方法和视频解码器
技术领域
本发明涉及解码视频,并且更具体地,但不限于用于解码视频的电路、方法和视频解码器。
背景技术
为了获得高清晰度视频解码器的吞吐量,例如,4K@P60(每秒60帧逐行扫描,宽度4096)或8K@P60(每秒60帧逐行扫描,宽度8192),通常需要以多个硬件加速器或多个通用处理器进行并行处理。对于多硬件加速器方案,帧级并行化被广泛使用。对于多通用处理器方案(CPU、GPU、DSP等),多种方法被使用,其中包括分片(tile)并行化、条带(slice)并行化、帧并行化、基本波前(wavefront)并行化等。
发明内容
本发明的实施例公开了一种用于解码视频的电路,包括:至少一个熵转码器被配置为对所接收的比特流执行至少一个熵转码,以生成转码流,其中该至少一个熵转码中的每一个包括对该比特流的语法转码;至少一个主解码单元被配置为对该转码流的一帧执行至少一个转码流解压缩和像素解码。
可替代地,该至少一种熵转码器包括多个熵转码器,并且该至少一个主解码单元包括多个主解码单元,其中:多个熵转码器被配置为在帧级并行化地对所接收的比特流执行多个熵转码,以生成转码流,其中多个熵转码的每一个包括对比特流的语法转码;多个主解码单元被配置为以多层的波前级并行化地对转码流的一帧执行多个转码流解压缩和像素解码。
一种视频解码器,包括以上所讨论的电路。
在本发明另一实施例中,解码视频的方法包括对所接收的比特流执行至少一个熵转码,以生成转码流,其中该至少一个熵转码中的每一个包括对比特流的语法转码;对转码流的帧执行至少一个转码流解压缩和像素解码。
可替代地,执行至少一个熵转码还包括帧级并行化地对所接收的比特流执行多个熵转码,以生成转码流,其中多个熵转码的每一个包括对比特流的语法转码:以及执行至少一个转码流解压缩和像素解码还包括以多层的波前级并行化地对转码流的帧执行多个转码流解压缩和像素解码。
附图说明
本发明通过附图以示例性方式示出。附图应被理解为示例性的而不是限制性的,本发明的范围由权利要求所限定。在附图中,相同的附图标记代表相同的元件。
图1是示出电路100的实施例的图。
图2A和2B是分别示出实施例中具有不同图像结构的图像如何被转换成波前形式的图。
图3是示出熵转码器的结构的图。
图4是示出实施例中用于解码多个CTU-行(CTU-Rows)的主解码单元的处理顺序的图。
图5是示出当根据本发明的实施例以对角线顺序处理CTU时,参考数据是如何被跨多个CTU共享的图。
图6A是示出运动补偿L2缓存和行缓冲被跨多个主解码单元共享的图。
图6B是示出单个主解码单元的结构的图。
图7是示出视频解码器的结构的图。
图8是示出本发明的实施例的方法的流程图。
图9是示出熵转码的详细运行的流程图。
图10是示出根据本发明的实施例的视频解码器的工作流程的流程图。
具体实施例
本发明的各个方面和示例将被描述。以下描述提供了具体细节以透彻理解和实现对这些实施例的描述。然而,本领域技术人员将理解的是本发明可以在没有许多这些细节的情况下被实践。此外,一些众所周知的结构或功能可以不被详细示出或描述,以避免不必要地模糊相关描述。
在以下描述中,数据的范围如下所示:
熵转码器:0~P-1;
主解码单元:0~L-1;
DDR中每帧的转码流:0~K-1;
以CTU为单位的图像高度:0~N-1;以及
以CTU为单位的图像宽度:0~M-1。
图1是示出电路100的实施例的图。
电路100包括多个编号为0、1、...P-1的熵转码器和多个主解码单元0、1、...L-1。多个熵转码器0、1、...P-1在帧级并行化地对所接收的比特流执行多个熵转码,以生成转码(或重新压缩)流,其中多个熵转码的每一个包括对比特流的语法转码。在一个实施例中,多个熵转码器是帧级并行化地执行多个熵转码的帧级熵转码器,这意味着熵转码并行在多帧上同时执行。根据一个实施例,存在多个熵转码器,例如,P个熵转码器,以及每一个熵转码器处理与来自其它熵转码器的帧不同的帧的比特流,或换言之,P个熵转码器并行处理来自不同的帧的比特流。
多个主解码单元0、1、...L-1以多层的波前级并行化地对转码流的一帧执行多个转码流解压缩和像素解码。注意多个熵转码器和多个主解码单元能够并行执行它们各自的操作,或换言之,同时进行。在一些实施例中,熵转码器和主解码单元之间的并行操作可以通过DDR来实现。例如,当该系统最初启动时,主解码单元可以在空闲状态。当转码流的第一帧准备好之后,主解码单元可以开始工作。同时,熵转码器可以开始处理转码流的第二帧。
波前并行处理(WPP)或波前并行化是当条带被分成CTU的多行时,其中第一行被正常解码,但每一附加行的解码需要前一行的相关信息。WPP具有来自先前CTU的行的熵编码器使用信息,并允许并行处理的方法,其可以允许比分片(tile)更好的压缩。波前并行化的细节将在下文参考图2A和2B进行详细讨论。
在一个实施例中,所接收的比特流可以以不同格式被编码。多个熵转码器的每一个将所接收的以不同格式被编码的比特流变换为统一的波前子流格式的转码流。
尽管图1示出了包括多个熵转码器和多个主解码单元的实施例,但是可替代地,本发明的实施例还包括电路,它包括一个熵转码器和一个主解码单元。熵转码器被配置为对所接收的比特流执行至少一个熵转码,以生成转码流,其中该熵转码包括对该比特流的语法转码。主解码单元被配置为对该转码流的一帧执行至少一个转码流解压缩和像素解码。
可选地,本发明的实施例也适用于包括一个熵转码器和多个主解码单元的电路,或者包括多个熵转码器和一个主解码单元的电路。
图2A和2B是分别示出实施例中具有不同图像结构的图像如何被转换成波前形式的图。
熵转码器并行运行,并且处理不同的帧的压缩流。熵转码器的输入能够符合各种编解码器标准,如HEVC/H.265,Google VP9和中国AVS2,符合各种图像结构,如分片、条带或波前。在熵转码之后,熵转码器将输出统一的波前子流格式的转码流,使得后一阶段能够正确并迅速地处理转码流。如图2A和2B所示,具有多个分片或多个条带的M×N的CTU的一幅图像将被转换到波前形式的N子流。
具体而言,在图2A中,在左侧部分中示出的所接收的比特流被排列为分片结构。分片允许图像被划分成能够被独立地解码/编码的矩形区域的网格。分片的主要目的是允许并行处理。分片排列的所接收的比特流被转换成在图2A的右侧部分示出波前形式。在图2A的右侧部分示出的帧被以波前形式排列,也即,该帧被分成CTU的行,其中第一行被正常解码,但每一附加行的解码需要前一行的相关信息。
在图2B中,在左侧部分中示出的所接收的比特流被排列为条带结构。条带是以光栅扫描的顺序进行解码的CTU。术语光栅扫描或进行光栅扫描,指电视中图像采集和重建的矩形图案。类似地,该术语也用于光栅图形,在大多数计算机位图图像系统中使用的图像存储和传输的模式。排列在条带中的所接收的比特流被转换成在图2B的右侧部分中所示的波前形式。在图2B的右侧部分中所示的帧被以波前形式排列,也即,该帧被分成CTU的行,其中第一行被正常解码,但每一附加的行需要前一行的相关信息。
图3是如图1中所示的熵转码器(0到P-1)的每一个的结构的详细框图。
图3中示出的熵转码器300包括三个部分:熵解码器310、熵编码器320和流打包器330。在熵转码器300之前的流预解析器350扫描初始比特流,并将一帧的编码的流数据传递到每个熵转码器300。熵解码器310对所接收的以不同的格式编码的比特流进行熵解码。熵编码器320对解码的比特流熵编码,并且解码的比特流也能够被称为转码流,因为它首先被解码,然后被编码。转码流将被由流打包器330打包成统一格式的波前子流(或也称为统一的波前子流格式的比特流),并连同子流入口点一起存储在双倍数据速率(DDR)存储器中。DDR代表在电子系统中一种广泛使用的存储器,该系统可以是片外存储器。入口点指特定子流相对于DDR中相同帧的第一子流的偏移。后期解码所需的命令将存储在DDR的命令队列中。多个熵转码器单元将以帧并行化地运行。
图4是示出实施例中用于解码多个CTU-行的主解码单元的处理顺序的图。如图4中所示,转码的波前子流和有关信息将按照每帧被存储在DDR。注意如图4中所示的帧X的转码子流示例图与图2A或图2B的右侧部分相同。在图4中,不同子流和有关信息在长度上是变化的。注意一些子流,例如CTU行3的子流3的长度不同于CTU行N-2的子流N-2的长度,因为它们的信息量不同。此外,转码子流示例图只是表明不同子流的长度是可变的,并不代表子流在存储器中的实际存储位置。
假设总的L个(序号分别为0,1,2......L-1)主解码单元正在运行。数字L可以根据系统的性能和功耗而变化。数字J可以被定义为J=ceil(N/2L)-1,其中N表示一个图像可以包括的CTU的行数。ceil(或有时被称为ceiling)函数将一个实数映射为该实数后面的最小的整数(向上取整)。因此,子流的序号可以被表示为2L*J+0,2L*J+1,2L*J+2,2L*J+3,2L*J+4,2L*J+5...2L*J+2L-2,2L*J+2L-1。当J=0时,以上表达式可以取0,1,2,3,4,5...2L-2,2L-1的值。当J=1时,以上表达式可以取2L+0,2L+1,2L+2,2L+32L+4,2L+5,4L-2,4L-1的值。
假设每一个主解码单元能够解码两个子流。然后子流2L*J+0和子流2L*J+1由主解码单元0处理,被表示为垂直线上的块。子流2L*J+2和子流2L*J+3由主解码单元1处理,被表示为水平线上的块。子流2L*J+4和子流2L*J+5由主解码单元2处理,被表示为斜线上的块。......子流2L*J+2L-2和子流2L*J+2L-1由主解码单元L-1处理,被表示为交叉线上的块。
在图4的下部,每一块代表编码树单元(CTU)。在子块中的数字表示每个解码单元的CTU的处理顺序。图4给出了M×N的CTU图像解码的示例。每个主解码单元每个命令处理两个子流,以及以对角线顺序解码两个CTU-行。例如,主解码单元0处理子流0和1,并对CTU-行0和1解码(CTU-行0和1被标记为垂直线,这意味着它们由主解码单元0解码);主解码单元1处理子流2和3,并且解码CTU-行2和3(CTU-行2和3被标记为水平线,这意味着它们由主解码单元1解码);主解码单元2处理子流4和5,并解码CTU-行4和5(CTU-行4和5被标记为斜线,这意味着它们由主解码单元2解码)等。空白子块,即,不具有数字的子块表示尚未被解码的子块。
每个主解码单元(0,1,...L-1)将从DDR读取转码子流,并且并行处理相同帧的不同子流。每个主解码单元(0,1,...L-1)能够同时处理多个子流,并如图5中所示以对角线顺序处理多个CTU-行,以使相邻CTU的参考像素可能被重新使用,并且运动补偿本地缓存的命中率能够得到提高。
注意以上实施例中,CTU被用于作为示出基本处理单元的示例。然而,本发明的实施例并不限于CTU。本发明的实施例也适用于其它基本处理单元,如Google VP9的超级块,或宏块单位等。另外,虽然图4示出了每一个主解码单元同时处理两个CTU-行,主解码单元可以同时处理多于两个CTU-行。
图5是示出当根据本发明的实施例以对角线顺序处理CTU时,参考数据是如何被跨多个CTU共享的图。图5中的对角线顺序能够以水平和垂直方向重用帧间(inter)参考数据。例如,当主解码单元0根据本发明的实施例解码CTU 2时,主解码单元0可以参考帧间参考数据2(参考2)。主解码单元0可以参考帧间参考数据0(参考0)用于解码CTU 0。主解码单元0可以参考帧间参考数据1(参考1)用于解码CTU 1。注意CTU 0、CTU 1和CTU 2分别以虚线块的形式被显示,同时参考0、参考1和参考2分别以实线块的形式被分别显示。注意参考的参考0是来自与当前解码的CTU 0的帧不同的帧,相同的规则适用于参考1和参考2。参考2与相邻CTU(CTU 0)的参考0的重叠是在当前解码的CTU(CTU 2)的垂直方向上的,而参考1与相邻CTU(CTU 0)的参考0的重叠是在当前解码的CTU(CTU 1)的水平方向上。因此,当CTU被处理时,水平和垂直的相邻CTU的帧间参考数据可以被共享和重用。
结合图5并参照图4,在本发明的实施例中,当主解码单元0解码较低的行(例如,CTU-1行)中的CTU(CTU 2),它会参考在CTU 2的上方行中的CTU 2的右上方的CTU(CTU 0和CTU 1)的信息。因此,下方行的解码进度比上方行慢。当CTU 2被以帧内预测模式编码时,右上方CTU的像素也将被参考。以及当CTU被以帧间预测模式编码时,右上方CTU的参考数据由于它们的空间相关性可能被部分地重复使用。换言之,图4中所解码的CTU图案逐行缩进。而且,当解码CTU 1时,当CTU 1被以帧间预测模式编码时,主解码单元0参考CTU 0,并且重用CTU 0的帧间参考数据。本实施例以这种方式重用在垂直和水平方向上的帧间参考数据,从而改善数据的相关性,并节省带宽。
此外,多层的波前包括波前的第一层和波前的第二层。波前的第一层指主解码单元用于同时解码多个子流。按照对角线顺序的多个CTU行由主解码单元处理,使得运动补偿本地缓存的命中率可以得到提高。波前的第二层指将多个主解码单元能够同时工作,并且多个主解码单元以波前形式并行工作。例如,每一个主解码单元能够同时解码2个子流,而三个主解码单元能够并行工作。因此,总共有6子流能够被并行解码。
图6A是示出运动补偿L2缓存和行缓冲被跨多个主解码单元共享的图。
如图6A所示,多个主解码单元0,1,......L-1共享同一个运动补偿共享L2(2级)缓存,以及一个共享行缓冲。通过将不同主解码单元保持在适当的速度,共享L2缓存的命中率能够被改善以节省带宽。共享L2缓存可以存储与帧间参考数据有关的信息。在统计上,不同主解码单元的帧间参考数据可以重叠。通过将帧间参考数据存储在L2缓存中,用于存取来自DDR的帧间参考数据的次数被降低,因此改善了电路的效率。
多级缓存被部署以进一步减少带宽需求。在一个实施例中,每一个主解码单元有它自己的本地缓存,这是1级缓存,而所有主解码单元将共用共享L2缓存。
行缓冲能够跨多个具有波前架构的主解码单元被共享,如帧内预测行缓冲、去块滤波器行缓冲、自适应样点补偿滤波行缓冲等。不管有多少主解码单元将被实例化,所需要的行缓冲的大小与一个主解码单元所需的行缓冲大小相同。这是因为,在同一时间,不同主解码单元将处理不同列的CTU,因此行缓冲的大小仅取决于图像宽度。相比其它帧级并行化的方法,在本发明的实施例中,行缓冲存储器的大小能够大大减少,使得硬件实现成本能够被节省。
多级运动补偿缓存,以及波前架构使参考像素能够跨多个主解码单元中被重复使用。因为本发明的实施例的并行化处理同一帧中的相邻CTU,本发明的实施例具有更好的相关性和空间局部性,相比通过现有技术的常规缓存,如像素解码帧级并行,本发明的实施例能够节省更多带宽。另外,多级运动补偿缓存包括主解码单元的本地(L1)的运动补偿缓存和由多个主解码单元共享的2级缓存。
相比于常规HEVC标准中的分层波前,根据本发明的实施例的多层波前和多级缓存被用于最小化对4K/8K视频系统重要的带宽要求。波前的第一层被用于通过主解码单元以对角线顺序解码多个CTU行(CTU是编码树单元的缩写,也例如,Google VP9的超级块),以使运动补偿本地缓存的命中率能够改善;而波前的第二层被用于使主解码单元以波前形式并行工作,并且二级缓存的命中率也能够得到改善。
图6B是示出单个主解码单元的结构的图。单个主解码单元600包括:转码流解压缩器610、像素解码器620、运动补偿缓存650、帧缓冲压缩器630和帧缓冲解压缩器640。
转码流解压缩器610解压缩转码流,从而生成解压缩流。注意转码流来自DDR。像素解码器620对解压缩流执行反量化、反变换、帧内预测、运动补偿和环路滤波器功能。像素解码器620与转码流解压缩器610、行缓冲、帧缓冲解压缩器640和帧缓冲压缩器630进行交互。
帧缓冲压缩器630压缩重建解压缩流的YUV数据。由帧缓冲压缩器630生成的压缩重建的YUV数据被提供给到DDR。
运动补偿缓存650缓存解压缩流的运动补偿参考数据,该运动补偿参考数据为压缩的YUV格式的数据,其由帧缓冲压缩器630生成并在DDR中缓冲。由于运动补偿缓存650可以使用多个帧间参考数据,所以运动补偿缓存650可以读取多个先前由帧缓冲压缩器630生成并在DDR中缓冲的运动补偿参考数据。存储在运动补偿缓存650中的运动补偿参考数据被压缩,而且是来自于图6A中所示的运动补偿共享L2缓存。YUV模型以一个亮度(Y)和两个色度(UV)的分量定义了一个颜色空间。
由于与未压缩的数据相比,压缩的数据的大小被减少,所以帧缓冲压缩器630和帧缓冲解压缩器640可以减轻与DDR的通信总线的通信压力,从而消耗更少的通信总线资源并节省功耗。注意帧缓冲压缩器630和帧缓冲解压缩器640可以在一个实施例中被省略。
帧缓冲解压缩器640解压缩从运动补偿缓存650获得的压缩的YUV格式的数据。注意当主解码单元600的运动补偿缓存650读取由帧缓冲压缩器630生成的压缩的参考帧时,帧缓冲解压缩器640被需要。由于根据实施例,压缩的数据比解压缩的数据小得多,并且在可能是静态随机存取存储器(SRAM)、嵌入式同步动态随机存取存储器(eSDRAM)等的片上存储器上需要更少空间,或在同一个片上空间可以存储更多的信息,所以通过将帧缓冲解压缩器640定位在运动补偿缓存650之后,相对于将帧缓冲解压缩器定位在缓存前的其它常规方案,运动补偿缓存650的利用率能够得到改善或更小的运动补偿缓存650能够被使用。
通过将不同主解码单元保持在适当的速度,共享L2缓存的命中率能够被改善以节省带宽。
以上讨论的电路可以在任意产品中使用,包括视频解码器,如机顶盒(STB)、数字电视(DTV)、平板电脑、智能手机、笔记本电脑和个人计算机,个人数字助理(PDA)等。
图7是示出视频解码器的结构的图。视频解码器700包括可编程控制器710、多个帧级熵转码器0,1,P-1、DDR数据总线、多个主解码单元0,1,L-1和运动补偿共享L2缓存。帧级熵转码器0,1,...P-1类似于图1中的熵转码器0,1,...P-1。主解码单元0,1,...L-1类似于图1或图6A和图6B中所示的主解码单元0,1,...L-1。
如图7所示,可编程控制器(它可以是CPU、DSP、MCU等)发送指令到多个熵转码器器0,1,...P-1。多个熵转码器的每一个生成压缩子流,并经由DDR数据总线将它们相应的压缩子流存储在DDR存储器中。基于由可编程控制器输出的子流解码的命令队列,转码流将被打包成统一格式的波前子流,并连同子流的入口点被存储在DDR中。在一个实施例中,一帧的子流和同一帧的入口点被一起存储。可替换地,一帧的子流和同一帧的入口点可以被分别存储,即,在不同片外或片上存储器中。
主解码单元0,1,L-1的每一个经由DDR数据总线从DDR存储器读取压缩的子流,并将解码数据输出到DDR,根据与命令调度器、同步控制、共享行缓冲和运动补偿的共享L2缓存的交互。注意由于与主解码单元有关的部分类似于关于图6A和6B讨论的主解码单元0......L-1,它们的描述在一个实施例中被省去。
图8是示出本发明的实施例的方法的流程图。解码视频的方法800包括在框810中,帧级并行化地对所接收的比特流执行多个熵转码,以生成转码流,其中多个熵转码的每一个包括对比特流的语法转码;在框820中,以多层的波前级并行化地对转码流的一帧执行多个转码流解压缩和像素解码。
可替代地,所接收的比特流以不同的格式被编码,其中执行多个熵转码的每一个还包括:将所接收的以不同格式被编码的比特流转换为统一的波前子流格式的转码流。
可替代地,不同格式包括分片(tile)并行化、波前(wavefront)并行化、条带(slice)并行化或无并行化的条带(slice)。
图9是示出图8中的框810中的熵转码的详细运行的流程图。可替代地,所接收的比特流以不同的格式被编码。在框810中,执行多个熵转码的每一个还包括在框812中,对所接收的以不同格式被编码的比特流进行熵解码;在框814中,对解码的比特流熵编码;以及在框816中,将编码的比特流打包为统一格式的波前子流。
图10是示出根据本发明的实施例的视频解码器的工作流程的流程图。可替代地,在框1000中,多个熵转码的每一个还包括在框1010中,获得比特流的可用的帧;在框1020中,获得用于转码流的存储缓冲;在框1030中,确定用于转码流的存储缓冲是否可用。如果用于转码流的存储器缓冲可用,则方法1000前进到框1040,确定熵转码器是否可用,如果熵码器可用,则在框1050中,该方法执行熵转码。如果熵码器可用,该方法同时获得比特流的下一个可用帧。用于熵转码的详细操作已相对于图9讨论,因此,其详细情况在实施例中被省去。
可替代地,多个像素解码的每一个还包括解压缩转码流,从而生成解压缩流;对解压缩的流执行反量化、反变换、帧内预测、运动补偿和环路滤波;压缩解压缩的流的重建YUV数据;缓存解压缩的流的运动补偿的参考数据,该运动补偿的参考数据为压缩的YUV格式的数据;以及解压缩压缩的YUV格式的数据。
可替代地,执行多个像素解码的一个还包括通过多个主解码单元的一个,并行处理一帧的不同子流,以生成多个基本处理单元行;并且以对角线顺序解码多个处理单元行以便重用在水平和垂直方向的帧间参考数据,可以参考图5。
可替代地,参照图10的右侧部分,在并行处理帧的不同子流之前,在框1100中执行多个像素解码还包括在框1110中,检查转码流的一帧是否可用;在框1120中,如果转码流的帧可用,则通过命令调度器,根据存储在命令队列中的命令,调度多个候选主解码单元。在一个实施例中,命令调度器可以调用来自命令队列的指令,从而调度至少一个相应的主解码单元进行操作。
执行像素解码的方法还包括,在框1130中获取主解码单元,在框1140中确定主解码单元是否可用,如果主解码单元可用,则在框1150中,该方法根据命令解压缩多个子流,并且在框1160中,按照CTU以对角线顺序处理并输出多个CTU行。注意如果框1140的结果可用,该方法同时获得该帧的下一个命令,从而确保多个主解码单元可以并行工作。还应注意的多个主解码单元可以同时地并行操作框1150和1160。该方法前进到框1170,确定该帧的结束是否被检测到。如果该帧的结束被检测到,则该方法返回到框1110。如果该帧的结束未被检测到,则该方法返回到框1120。
两个阶段,熵转码(S1或1000)和主解码(S2或1100),概括出整体的解码流程。该工作流程具有多个熵转码器以帧并行化地运行,并且多个主解码单元以波前并行运行。
如图10所示,通过如图10所示的引入命令队列和命令调度器,主解码单元和可编程控制器(例如,CPU)之间的通信可被最小化,从而确保主解码单元以尽可能流畅的方式运行。
可替代地,多个熵转码并行进行;或者多个像素解码并行执行。
可替代地,执行多个熵转码与执行多个像素解码并行。
可替代地,基本处理单元包括编码树单元、超级块,或宏块单元。
本发明的实施例为熵转码部分使用帧级并行化,以及为同一帧内的转码的子流解码和像素解码使用多层的波前并行化。
熵转码器将各种图像结构,如分片、条带、波前转换为统一格式的波前子流,从而后期可以适当地和高效地处理它们。
本发明的实施例可以去除帧级并行地执行像素解码部分的现有技术需要的帧间解码的依赖性,因为现有技术的像素解码可能并行地处理来自不同帧的CTU,而在本本发明的实施例中,所有被并行处理的CTU是来自于同一帧中,以使解码器性能可以不受图像结构以及不同帧解码之间的依赖性的影响,而在其他情形下(例如现有技术中),图像结构以及不同帧解码之间的依赖性将会导致一些性能损失。熵转码器经由硬件加速器与主解码部并行执行,以实现较高的性能。
相比于帧级并行化,在本发明的实施例中,该波前并行化的可扩展性可以得到改善,并且本发明的实施例的每个主解码单元解码也可以具有更好的解码均衡性。
相比传统HEVC标准中的单层波前,多层波前和多级缓存可以被用于最小化带宽要求,这对4K/8K视频系统非常关键。波前的第一层被用于通过像素解码单元以对角线顺序解码多个CTU行,使得运动补偿本地缓存的命中率可以得到改善;而波前的第二层被用于使像素解码单元以波前形式并行工作,并且第二级缓存的命中率也可以得到改进。
本发明的实施例可以以具有非常好的可扩展性和解码负载均衡性的混合并行化为特征,更具体的,熵转码具有帧级并行化;转码子流的解码和像素解码具有多层波前并行化。
本发明的实施例可以通过对可以由分片、波前或无任何并行化工具仅条带编码的原始流进行转码,以得到统一的波前子流为特征。
与HEVC标准中的单层波前相对,本发明的实施例可以进一步以多层波前相比为特征,使得运动补偿本地缓存的命中率能够被改善,而DDR带宽能够被减小。
本发明的实施例可以进一步以具有波前的架构的多级运动补偿缓存为特征,使得帧间参考像素能够跨多个主解码单元被重复使用。相比通过现有技术,如像素解码帧级并行性的常规缓存,本发明的实施例因为较好的相关性和空间局部性能够节省更多的带宽。
本发明的实施例可以适用于多标准架构,HEVC/H.265,Google VP9,中国AVS2等。
本发明的实施例可以进一步以跨具有波前架构的多个主解码单元的共享行缓冲为特征,以减少硬件实现的成本。
尽管本发明已经参照具体的示例性实施例被描述,但本发明并不限于本文描述的实施例,它能够在不脱离所附权利要求书的精神和范围的情况下,以修改或替换的形式来实现。相应地,说明书和附图应被视为说明性的而非限制性的。
从前述内容,将要理解的是技术具体实施例出于说明的目的已在本文被描述,然而各种修改在不脱离本发明的精神和范围的情况下能够被做出。因此,本发明除了所附权利要求书的精神,并不被限制。
对所公开的实施例的其它变型能够被本领域技术人员在实践所要求保护的发明时通过对附图、公开内容和所附权利要求书的研究来理解和实现。权利要求书中的词语“包括”并不排除其它元件或步骤,而不定冠词“一”或“一个”不排除多个。即使在不同的从属权利要求中记载了特定的特征,但本发明还涉及包括所有这些特征的实施例。权利要求中的任何附图标记不应当被解释为限制保护范围。
各种实施例的各特征和各方面可以被集成到其它实施例中,并且本文件中示出的实施例可以在未全部包含所有这些被示出或描述的特征或方面被实现。本领域技术人员将理解的是尽管出于说明的目的,系统和方法的具体示例和实施例已经被描述,但在不脱离本发明的精神和范围的情况下,各种修改能够被做出。此外,一个实施例的特征可以被并入其它实施例中,即使那些特征未在本文件内的单个实施例中被一起描述。因此,本发明由所附权利要求书描述。

Claims (27)

1.一种用于对视频解码的电路,包括:
至少一个熵转码器,被配置为对所接收的比特流执行至少一个熵转码,以生成转码流,其中所述至少一个熵转码中的每一个包括对所述比特流的语法转码;
至少一个主解码单元,被配置为对所述转码流的一帧执行至少一个转码流解压缩和像素解码。
2.根据权利要求1所述的电路,其中所述至少一个熵转码器包括多个熵转码器,并且所述至少一个主解码单元包括多个主解码单元,其中:
所述多个熵转码器被配置为在帧级并行化地对所接收的比特流执行多个熵转码,以生成转码流,其中所述多个熵转码的每一个包括对所述比特流的语法转码;
所述多个主解码单元被配置为以多层的波前级并行化地对所述转码流的一帧执行多个转码流解压缩和像素解码。
3.根据权利要求2所述的电路,其中所述所接收的比特流以不同的格式被编码,其中所述多个熵转码器的每一个被进一步配置为
将以不同的格式被编码的所述所接收的比特流转换为统一的波前子流格式的所述转码流。
4.根据权利要求3所述的电路,其中所述不同格式包括分片(tile)并行化,波前并行化,条带并行化或无并行化的条带。
5.根据权利要求2所述的电路,其中所述所接收的比特流以不同的格式被编码,并且所述多个熵转码器的每一个还包括:
熵解码器,被配置为对以不同格式被编码的所述所接收的比特流熵解码;
熵编码器,被配置为对所述解码的比特流熵编码;以及
流打包器,被配置将所述编码的比特流打包为统一格式的波前子流。
6.根据权利要求5所述的电路,其中所述熵转码器被进一步配置为:
获得所述比特流的可用的帧;
确定用于转码流的存储缓冲是否可用;
如果用于转码流的所述存储缓冲可用,确定熵转码器是否可用;
如果所述熵转码器可用,执行熵转码;以及同时获得比特流的下一可用帧。
7.根据权利要求2所述的电路,其中所述多个主解码单元的每一个还包括:
转码流解压缩器,被配置为解压缩所述转码流从而生成解压缩的流;
像素解码器,被配置为对所述解压缩的流执行反量化、反变换、帧内预测、运动补偿和环路滤波;
帧缓冲压缩器,被配置为压缩所述解压缩的流的重建YUV数据;
运动补偿缓存,被配置为缓存所述解压缩的流的运动补偿参考数据,其中所述运动补偿参考数据为压缩的YUV格式的数据;以及
帧缓冲解压缩器,被配置为解压缩所述压缩的YUV格式的数据。
8.根据权利要求2所述的电路,其中所述多个主解码单元的每一个被进一步配置为:
并行处理不同子流的一帧以生成多个基本处理单元行;以及
以对角线顺序解码所述多个基本处理单元行,以在水平和垂直方向重用帧间参考数据。
9.根据权利要求8所述的电路,还包括命令调度器,其中所述多个主解码单元的每一个被进一步配置为:
检查转码流的帧是否可用;以及
所述命令调度器被配置为如果所述转码流的所述帧可用,根据存储在命令队列中的命令,调度多个候选主解码单元。
10.根据权利要求2所述的电路,其中所述多个熵转码器并行运行;或所述多个主解码单元并行运行。
11.根据权利要求2所述的电路,其中所述多个熵转码器与所述多个主解码单元并行运行。
12.根据权利要求8所述的电路,其中所述基本处理单元包括编码树单元、超级块,或宏块单元。
13.根据权利要求2所述的电路,还包括行缓冲,被配置为执行帧内预测、去块滤波、自适应样点补偿滤波,并且被配置为由所述多个主解码单元共享。
14.根据权利要求2所述的电路,其中所述多个主解码单元的每一个包括运动补偿缓存,并且所述电路还包括由所述多个主解码单元共享的至少一个共享缓存。
15.一种对视频解码的方法,包括:
对所接收的比特流执行至少一个熵转码,以生成转码流,其中所述至少一个熵转码中的每一个包括对所述比特流的语法转码;
对所述转码流的帧执行至少一个转码流解压缩和像素解码。
16.根据权利要求15所述的方法,其中
执行所述至少一个熵转码还包括帧级并行化地对所接收的比特流执行多个熵转码,以生成所述转码流,其中所述多个熵转码的每一个包括对所述比特流的语法转码:以及
执行至少一个转码流解压缩和像素解码还包括以多层的波前级并行化地对所述转码流的帧执行多个转码流解压缩和像素解码。
17.根据权利要求16所述的方法,其中所述所接收的比特流以不同格式被编码,其中执行所述多个熵转码的每一个还包括
将以不同格式被编码的所述所接收的比特流转换为统一的波前子流格式的所述转码流。
18.根据权利要求16所述的方法,其中所述不同格式包括分片并行化、波前并行化、条带并行化或无并行化的条带。
19.根据权利要求16所述的方法,其中所述所接收的比特流以不同的格式被编码,并且执行所述多个熵转码的每一个还包括:
对以不同格式被编码的所述所接收的比特流熵解码;
对所述解码的比特流熵编码;以及
将所述编码的比特流打包为统一格式的波前子流。
20.根据权利要求19所述的方法,其中所述多个熵转码还包括:
获得所述比特流的可用的帧;
确定用于转码流的存储缓冲是否可用;
如果用于转码流的所述存储缓冲可用,确定熵转码器是否可用;
如果熵转码器可用,执行熵转码以及同时获得比特流的下一可用帧。
21.根据权利要求16所述的方法,其中所述多个像素解码的每一个还包括:
解压缩所述转码流从而生成解压缩的流;
对所述解压缩的流执行反量化、反变换、帧内预测、运动补偿和环路滤波;
压缩所述解压缩的流的重建YUV数据;
缓存所述解压缩的流的运动补偿参考数据,其中所述运动补偿参考数据为压缩的YUV格式的数据;以及
解压缩所述压缩的YUV格式的数据。
22.根据权利要求16所述的方法,其中执行所述多个像素解码的一个还包括:
通过所述多个主解码单元的一个,并行处理不同子流的一帧,以生成多个基本处理单元行;以及
以对角线顺序解码所述多个基本处理单元行,以在水平和垂直方向重用帧间参考数据。
23.根据权利要求22所述的方法,其中在并行处理所述不同子流的所述帧之前,执行所述多个像素解码还包括:
检查转码流的帧是否可用;以及
如果所述转码流的所述帧可用,通过命令调度器,根据存储在命令队列中的命令调度多个候选主解码单元。
24.根据权利要求16的方法,其中所述多个熵转码被并行执行;或所述多个像素解码被并行执行。
25.根据权利要求16所述的方法,其中执行所述多个熵转码与执行所述多个像素解码并行。
26.根据权利要求22所述的方法,其中所述基本处理单元包括编码树单元、超级块,或宏块单元。
27.一种视频解码器,包括根据权利要求1到14的任一项所述的电路。
CN201510171047.9A 2015-04-10 2015-04-10 用于视频解码的电路、方法和视频解码器 Active CN106210728B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510171047.9A CN106210728B (zh) 2015-04-10 2015-04-10 用于视频解码的电路、方法和视频解码器
US14/690,490 US9948941B2 (en) 2015-04-10 2015-04-20 Circuit, method and video decoder for video decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510171047.9A CN106210728B (zh) 2015-04-10 2015-04-10 用于视频解码的电路、方法和视频解码器

Publications (2)

Publication Number Publication Date
CN106210728A true CN106210728A (zh) 2016-12-07
CN106210728B CN106210728B (zh) 2019-08-30

Family

ID=57112430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510171047.9A Active CN106210728B (zh) 2015-04-10 2015-04-10 用于视频解码的电路、方法和视频解码器

Country Status (2)

Country Link
US (1) US9948941B2 (zh)
CN (1) CN106210728B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347602A (zh) * 2017-01-22 2018-07-31 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
CN109379591A (zh) * 2018-10-23 2019-02-22 深圳市网心科技有限公司 图片转码方法、电子装置及计算机可读存储介质
WO2019127432A1 (zh) * 2017-12-29 2019-07-04 深圳市大疆创新科技有限公司 视频解码器及其制造方法,数据处理电路、系统和方法
WO2019185032A1 (zh) * 2018-03-31 2019-10-03 华为技术有限公司 一种视频解码方法和装置
CN114125464A (zh) * 2020-08-27 2022-03-01 扬智科技股份有限公司 视频解码方法与视频解码装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9936213B2 (en) * 2013-09-19 2018-04-03 Entropic Communications, Llc Parallel decode of a progressive JPEG bitstream
US10015504B2 (en) * 2016-07-27 2018-07-03 Qualcomm Incorporated Compressing image segmentation data using video coding
WO2019007492A1 (en) * 2017-07-04 2019-01-10 Huawei Technologies Co., Ltd. INTRAMODE BYPASS LINE MEMORY HARMONIZATION DECODER SIDE WITH UNBLOCKING FILTER
WO2020009515A1 (ko) * 2018-07-05 2020-01-09 엘지전자 주식회사 Ctu 단위의 버퍼 압축을 이용한 영상 코딩 방법 및 그 장치
US11405617B1 (en) * 2019-05-21 2022-08-02 Xilinx, Inc. Method and system to enhance compression efficiency in encoded video by using dual pass entropy coding
CN111953988B (zh) * 2020-07-15 2022-08-09 广州柯维新数码科技有限公司 视频转码方法、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259877A1 (en) * 1997-05-05 2005-11-24 Wang Albert S Intra compression of pixel blocks using predicted mean
CN102150425A (zh) * 2008-09-11 2011-08-10 谷歌公司 用于使用并行处理来进行解码的系统和方法
CN104160702A (zh) * 2011-11-04 2014-11-19 高通股份有限公司 具有包含多个经编码图片分区的网络抽象层单元的视频译码
CN104221381A (zh) * 2012-04-11 2014-12-17 高通股份有限公司 用于视频译码的波前并行处理

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9338467B1 (en) * 2010-07-19 2016-05-10 Google Inc. Parallel video transcoding
US9936207B2 (en) * 2013-10-14 2018-04-03 Qualcomm Incorporated Indication of parallel processing in video coding
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259877A1 (en) * 1997-05-05 2005-11-24 Wang Albert S Intra compression of pixel blocks using predicted mean
CN102150425A (zh) * 2008-09-11 2011-08-10 谷歌公司 用于使用并行处理来进行解码的系统和方法
CN104160702A (zh) * 2011-11-04 2014-11-19 高通股份有限公司 具有包含多个经编码图片分区的网络抽象层单元的视频译码
CN104221381A (zh) * 2012-04-11 2014-12-17 高通股份有限公司 用于视频译码的波前并行处理

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108347602A (zh) * 2017-01-22 2018-07-31 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
WO2019127432A1 (zh) * 2017-12-29 2019-07-04 深圳市大疆创新科技有限公司 视频解码器及其制造方法,数据处理电路、系统和方法
WO2019185032A1 (zh) * 2018-03-31 2019-10-03 华为技术有限公司 一种视频解码方法和装置
CN110324625A (zh) * 2018-03-31 2019-10-11 华为技术有限公司 一种视频解码方法和装置
CN109379591A (zh) * 2018-10-23 2019-02-22 深圳市网心科技有限公司 图片转码方法、电子装置及计算机可读存储介质
CN109379591B (zh) * 2018-10-23 2021-08-06 深圳市网心科技有限公司 图片转码方法、电子装置及计算机可读存储介质
CN114125464A (zh) * 2020-08-27 2022-03-01 扬智科技股份有限公司 视频解码方法与视频解码装置
CN114125464B (zh) * 2020-08-27 2024-02-06 扬智科技股份有限公司 视频解码方法与视频解码装置

Also Published As

Publication number Publication date
US9948941B2 (en) 2018-04-17
CN106210728B (zh) 2019-08-30
US20160301942A1 (en) 2016-10-13

Similar Documents

Publication Publication Date Title
CN106210728B (zh) 用于视频解码的电路、方法和视频解码器
US9392292B2 (en) Parallel encoding of bypass binary symbols in CABAC encoder
US9807410B2 (en) Late-stage mode conversions in pipelined video encoders
Zhou et al. A 530 Mpixels/s 4096x2160@ 60fps H. 264/AVC high profile video decoder chip
CN104869398B (zh) 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法
KR101710001B1 (ko) 그래픽 프로세스 유닛 기반 jpeg2000 인코딩/디코딩 장치 및 방법
CN105472389B (zh) 一种用于超高清视频处理系统的片外缓存压缩方法
WO2017133315A1 (zh) 应用于视频硬解码的无损压缩方法及系统
CN103997650B (zh) 一种视频解码的方法和视频解码器
CN103581678B (zh) 通过使用多个解码器信道来改良解码器性能的方法与系统
CN103959790A (zh) 高效视频编码中的预测残余的扫描
CN105992008A (zh) 一种在多核处理器平台上的多层次多任务并行解码算法
JP2011066844A (ja) 並列復号装置及びプログラム並びに符号化データの並列復号方法
CN103947211A (zh) 具有已分区比特流的视频编码装置及方法
CN106162192A (zh) 处理视频数据的方法和装置
CN102801980B (zh) 一种用于可伸缩视频编码的解码装置和方法
CN106464882B (zh) 用于通过视频编码器处理视频帧的技术
CN101605263B (zh) 帧内预测的方法和装置
Zhou et al. A hardware decoder architecture for general string matching technique
Datla et al. Parallelizing motion JPEG 2000 with CUDA
US20150358630A1 (en) Combined Parallel and Pipelined Video Encoder
KR101138920B1 (ko) 멀티 스레드 기반의 비디오 디코더 및 디코딩 방법
CN101854538B (zh) 运动图像处理方法及运动图像处理器
Yan et al. Parallel deblocking filter for H. 264/AVC implemented on Tile64 platform
CN105530517B (zh) 一种解码器及有损解码视频图像的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171030

Address after: 200233 A18 site, 1 Yishan Road, Shanghai, Xuhui District, 900

Applicant after: Shanghai Lanshi Semiconductor Co., Ltd.

Applicant after: LAN to electronic technology (Chengdu) Co., Ltd.

Address before: 200233 room A1601, No. 900, Xuhui District, Shanghai, Yishan Road

Applicant before: Acrospeed, Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant