CN103947211A - 具有已分区比特流的视频编码装置及方法 - Google Patents

具有已分区比特流的视频编码装置及方法 Download PDF

Info

Publication number
CN103947211A
CN103947211A CN201280055934.4A CN201280055934A CN103947211A CN 103947211 A CN103947211 A CN 103947211A CN 201280055934 A CN201280055934 A CN 201280055934A CN 103947211 A CN103947211 A CN 103947211A
Authority
CN
China
Prior art keywords
bit stream
current
video
logical block
packed data
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
CN201280055934.4A
Other languages
English (en)
Other versions
CN103947211B (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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN103947211A publication Critical patent/CN103947211A/zh
Application granted granted Critical
Publication of CN103947211B publication Critical patent/CN103947211B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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

具有已分区比特流的视频编码装置及方法
交叉引用
本申请享有2011年11月14日提出的申请号为13/295,956的美国申请的优先权,上述申请的全文作为本申请的引用基础。
技术领域
本发明是有关于一种视频编码***,特别是有关于一种产生具有分区结构(partitionedstructure)的比特流的视频编码器的***结构。
背景技术
运动补偿的帧间(inter-frame)编码已被广泛采用于各种编码标准中,例如,MPEG-1/2/4和H.261/H.263/H.264(AVC)。VP8是最近的运动补偿视频编解码器(codec),它适合于一些软件、硬件、平台以及发布环境。VP8编码算法类似于H.264的简单配置。然而,VP8在简化编码和解码的复杂性的同时提供与H.264的简单配置相同的性能。VP8编解码器的一个特点是比特流格式适合于并行解码以利用在消费电子环境中的多核处理器或个人电脑环境中的多核CPU。为支持并行解码,VP8比特流将已压缩的数据分区为两类,其中第I类分区包括编码模式(mb_mode,sub_mb_mode,mb_skip,等)、参考索引、帧内预测模式、量化参数(Quantization Parameter,QP)信息、滤波器参数、宏块的运动向量、等;以及第II类分区包括宏块的残差的已量化变换系数。第II类分区(即,变换系数)可以在宏块行的基础上被封包为一个以上的分区,并且分区令牌(partition token)可以用于指示在宏块行和一个已封包(packed)的第II类分区之间的联系。由于在封包整个帧的预测数据之后封包与变换系数相关的信息,现有的编码器***可能需要存储整个帧的变换系数。相应地,需要开发一种编码器***,它提供分区比特流而不需要存储整个帧的变换系数。
发明内容
本发明提供一种产生已分区比特流的视频编码装置及方法。其中,已分区比特流包括第一逻辑单元和第二逻辑单元。第一逻辑单元包括对应于图片的多个编码单元的第一已压缩数据,第二逻辑单元包括对应于多个编码单元的第二已压缩数据,第一已压缩数据中的每一个以及第二已压缩数据中的每一个能够重构多个编码单元中的一个。根据本发明的一个实施方式,产生已分区比特流的视频编码方法和装置包括:接收与当前编码单元相关的第一视频参数,其中没有缓冲与后续编码单元相关的第一视频参数;编码第一视频参数以产生对应于当前编码单元的当前第一已压缩数据;确定在第一逻辑单元中的第一存储地址;以及在第一逻辑单元中的第一存储地址处提供当前第一已压缩数据。编码单元被配置为宏块。编码该第一视频参数可以利用第一熵编码器来产生利用第一熵编码器的当前第一已压缩数据。根据先前第一已压缩数据的数据尺寸和先前第一存储地址来计算第一存储地址。与当前编码单元相关的第一视频参数包括与当前编码单元相关或当前编码单元的预测残差相关的已量化变换系数。
可以应用相似的过程来产生第二逻辑单元。相应地,根据本发明另一实施方式,包括接收与当前编码单元相关的第二视频参数,其中没有缓冲与后续编码单元相关的第二视频参数;编码第二视频参数以产生对应于当前编码单元的当前第二已压缩数据;确定在第二逻辑单元中的第二存储地址;以及在第二逻辑单元中的第二存储地址处提供当前第二已压缩数据。与当前编码单元相关的第二视频参数包括与当前编码单元相关的预测数据。利用第一熵编码器编码第一视频参数产生当前第一已压缩数据,以及利用第一熵编码器或第二熵编码器编码第二视频参数来产生当前第二已压缩数据。根据先前当前第二已压缩数据的数据尺寸和先前第二存储地址来计算第二存储地址。
根据本发明的又一实施方式,第一逻辑单元进一步被划分为多个子逻辑单元,其中多个子逻辑单元中的每一个对应至与图片的区域相关的编码单元的第一已压缩数据。图片的区域包括编码单元的一个或多个行。多个子逻辑单元可以共享一个熵编码器或并行使用多个熵编码器。
附图说明
图1为将帧划分为宏块并且将宏块的每一行与四个图片分区中的一个相关联的实施方式的示意图。
图2为已分区比特流结构的实施方式的示意图,其中第I类分区包括帧的预测数据和遵循对应于变换系数数据的第II类分区的后续的变换系数分区的分区尺寸。
图3为包括帧的变换系数存储器和预测数据存储器的产生已分区比特流的运动补偿编码器的***方框图。
图4为根据本发明实施方式的运动补偿编码器的***方框图,其中当前宏块的已量化的变换系数的缓冲器代替帧的变换系数存储器来产生分区比特流。
图5A为基于相邻重构宏块的当前宏块的帧内预测的实施方式的示意图。
图5B为宏块的两行同时编码的实施方式的示意图。
图6为根据本发明实施方式的运动补偿编码器的***方框图,其中宏块预测缓冲器代替帧的预测数据存储器来产生分区比特流。
图7为根据本发明实施方式的运动补偿编码器的***方框图,其中宏块系数缓冲器和宏块预测缓冲器代替帧的变换系数存储器和预测数据存储器来产生分区比特流。
图8为根据与图7相似的本发明另一实施方式的运动补偿编码器的***方框图,其中变换系数和预测数据用于使用单独的熵编码器。
图9为并行处理计算与来自两图片分区的宏块相关的运动信息和变换系数的实施方式。
图10为体现本发明的编码***的示范性流程图。
图11为体现本发明编码***的另一示范性流程图。
具体实施方式
图1描述了被划分为图片编码单元(例如,在包括VP8的各种视频编码标准中的宏块)的图片帧。然而,编码单元可以被配置为其他尺寸。宏块的每一行的变换系数可以分配给对应于令牌(token)指示的变换系数的一个比特流分区。举例来说,在FOUR_TOKEN_PARTITION模式中,宏块行0、宏块行4、宏块行8等(称为图片的一个区域)的变换系数被封装到对应于变换系数的第一比特流分区;宏块行1、宏块行5、宏块行9等(称为图片的一个区域)的变换系数被封装到对应于变换系数的第二比特流分区;以此类推。四个图片分区(即,四个区域)分别在图1中标记为110、120、130和140。通过将变换系数封装到不同的分区,用于编码它们的熵内容与将所有的变换系数封装到具有以光栅扫描顺序的编码所有宏块的单一分区中的情形的熵内容是相同的。VP8的比特流各自允许多达8个系数分区。
图2为根据VP8的具有数据分区的比特流格式的实施方式。具有数据分区的比特流称为本发明揭示的已分区比特流。分区I对应于第I类分区,包括在此示例中根据光栅扫描顺序的帧的宏块编码模式和运动矢量。与帧的宏块相关的编码模式和运动矢量使用熵编码器进行封装。在第I类分区的末端,添加关于第II类分区的分区尺寸信息,并将该信息标记为IIA-PS、IIB-PS、IIC-PS等。在分区I后添加分区IIA、分区IIB、分区IIC等。每一个第II类比特流分区对应至帧的一个图片分区。对于图2中的示例,分区IIA与对应于宏块行0、宏块行4、宏块行8等的图片分区相关。根据VP8的数据分区允许解码器利用多核来同时解码/编码宏块的多个行。由于与帧的宏块相关的编码模式和运动矢量数据被封装到与宏块的变换系数分开的分区,允许参考数据预取(pre-fetch)和并行解码多于一个的宏块行。虽然图1所示的图片描述该图片被分区为四个区域,以使得第II类分区被划分为四个第II类型子分区(即,分区IIA至分区IID),但是本发明还适用于没有图片分区的情况。换句话说,若没有图片分割,则表示只有一个第II类分区。然而,在这种情况下仍然存在划分比特流(即,分区I和分区II)。
图3描述示范性的可以根据开关S1的位置在帧内预测模式和帧间预测模式之间进行选择的运动补偿编码***300。输入视频数据302通常以颜色成分来表示,例如亮度Y和色度UV。编码***300包括本地解码器(local decoder)310来重构帧内预测和帧间预测需要的参考数据。帧内预测320负责基于在同一帧中重构的视频数据提供预测数据。对于帧间预测来说,基于先前重构的帧使用运动估计332和运动补偿330来提供预测数据。开关S1选择帧内预测334a或帧间预测数据334b并且已选择的预测数据被提供给加法器350以形成预测误差(也称为残差(residues))。然后通过变换、缩放和量化352处理预测误差。对应于残差的已量化的变换系数然后通过熵编码器354编码形成对应于变换系数的比特流的一部分并且将比特流存储于比特流缓冲器356中。然后,与变换系数相关的比特流与边信息(sideinformation)(例如,与帧的宏块相关的编码模式和运动矢量)一起封装。边信息也可能取决于熵编码,以增加编码效率并相应地提供与边信息相关的数据至如图3所示的熵编码器354。由于VP8比特流格式封装第I类分区中的整个帧的宏块相关的编码模式和运动矢量,使用系数存储器358存储帧的变换系数。此外,使用预测数据存储器360存储与帧的宏块相关的编码模式和运动矢量。在图3所示的示例中,变换系数和模式/运动矢量共享相同的熵编码器354。使用开关S2来选择数据输入至熵编码器354。在位置362a处,将变换系数馈入熵编码器354,以及在位置362b处,将模式/运动矢量馈入熵编码器354。为了在编码器端重构参考帧/块,使用缩放、逆变换和去量化364恢复残差。然后使用加法器366将残差加回至来自帧内预测334a或帧间预测数据334b的参考。重构的视频数据可能会受编码伪像(artifact)的影响,这种影响在块边界更加突出。因此,为改善视频质量,在将视频数据存储于帧缓冲器370中之前,解块滤波器368应用于重构视频数据。编码***300也包括编码控制372,以提供控制信号在帧内模式和帧间模式之间进行选择,选择用于缩放和量化的参数,以及决定运动估计332。图3描述支持上述提到的比特流分区的编码器***的实现。
系数存储器358和预测数据存储器360的使用允许整个帧的系数和预测数据被暂时缓冲。由于已缓冲帧的系数和预测数据,熵编码器354可以在比特流格式中以特定顺序处理系数和预测数据。举例来说,可以通过应用熵编码器354以编码单元为单元进行光栅扫描的处理顺序对存储于预测数据存储器360中的模式/运动矢量来产生分区I的比特流,以及已压缩的数据被依次写入比特流缓冲器356中的空间。分区数据的已压缩的数据被写入比特流缓冲器356中的分区I数据区域。分区I数据区域称为本发明揭示的分区I逻辑单元。为了适当存储与当前编码单元相关的预测数据的已压缩数据,需要确定地址。若随后写入已压缩的数据,则当前地址可以根据先前地址和先前编码单元的已压缩数据的数据尺寸来确定。由于对应于与帧的编码单元相关的预测数据的已编码的数据可以一个编码单元接一个编码单元地存储于比特流缓冲器356的分区I区域中,因此变换系数存储器358和预测数据存储器360的使用可以提供***设计的便利。相似地,对应于与帧的编码单元相关的已量化的变换系数的已压缩数据可以一个编码单元接一个编码单元地存储于比特流缓冲器356的分区II区域中。然而,由于这些数据为未压缩格式以及缓冲了整个帧的这些数据,变换系数存储器358和预测数据存储器360相当大。此外,为了执行帧内/帧间预测,编码器***始终需要帧缓冲器来存储先前重构帧和当前重构帧。由于变换系数可能需要比原始图像数据更多的比特,与变换系数相关的缓冲器尺寸可以大于原始帧的尺寸。举例来说,为具有足够的精度,原始数据通常为8个位分辨率以及变换系数需要12为或更多位。因此,需要设计编码器***能够支持上述提到的已分区比特流,而不需要变换系数存储器及/或预测数据存储器。
除分区尺寸IIA-PS、分区尺寸IIB-PS、分区尺寸IIC-PS等之外,完整的分区I比特流在分区I的末端产生。然后,熵编码器354可以根据分区II的顺序切换为处理变换系数。在四个令牌分区的示例中,熵编码器354顺序处理宏块行0、宏块行4、宏块行8等并将结果写入比特流缓冲器356的第二空间中。与分区IIA、分区IIB、分区IIC等相关的帧的部分称为本发明揭示的图片分区。相应地,分区IIA参考宏块行0、宏块行4、宏块行8等。当指示分区IIA的行的熵编码完成时,已知分区尺寸以及可以将分区尺寸写入位于分区I的末端的IIA-PS。一旦分区IIA的熵编码完成,熵编码和比特流的产生处理下一个分区,直到所有分区都被处理完为止。
为了克服需要变换系数存储器及/或预测存储器,每个宏块的变换系数及/或模式/运动矢量需要实时(on the fly)处理,即实时处理每个宏块的变换系数及/或模式/运动向量以产生对应的比特流。一旦完成当前宏块的处理,可以忽略每个宏块的变换系数及/或模式/运动向量的存储,例如删除或复写。在实时处理变换系数的示例中,宏块系数缓冲器可以用于保持当前块的变换系数。通过熵编码器354实时处理当前块的变换系数,并将该变换系数写入到分配用于与比特流缓冲器中的当前宏块相关的分区的数据区域。分配与当前宏块相关的分区的数据区域与数据地址相关,其中分区中当前宏块的比特流被写入通过该数据地址指示的比特流缓冲器。初始化分区中的第一宏块的数据地址。在处理完当前宏块之后,已知对应的比特流的尺寸以及可以计算分区中下一个宏块的数据地址。每一个宏块的比特流的尺寸可以使用计数器来跟踪。为了支持实时处理,需要在通过下一个编码单元开始覆盖的数据之前完成当前宏块的熵编码。虽然单一的宏块系数缓冲器可以足够使用,但是两个宏块系数缓冲器也可以用于保持当前宏块和下一宏块的变换系数以简化设计。
图4描述了本发明体现的实时处理宏块的变换系数的示范性视频编码器。宏块系数缓冲器410用于存储(帧间模式的)宏块的残差的变换系数或(帧内模式的)宏块的变换系数。当参考变换系数时,变换系数可以为量化的形式。因此,本发明揭示的术语“变换系数”可以与“已量化的变换系数”互换。每当宏块变换系数可获得时,通过熵编码器354处理该宏块变换系数以及将对应的比特流写入比特流缓冲器356中的相应分区数据区域。根据本发明的实施方式,也可以包括数据地址控制器420以提供要写入的比特流的数据地址424。根据当前数据地址和对应于当前宏块的比特流422的尺寸,在写入当前宏块的已压缩数据之后,地址控制器420会更新数据地址424。在处理当前宏块的变换系数之后,宏块系数缓冲器410准备要处理的下一个宏块变换系数。因此,根据本发明的实施方式,可以使用较小的缓冲器410来保持变换系数的一个宏块值,以代替系数存储器358来保持帧的变换系数。若对应于变换系数的分区被进一步划分为多个分区,则可以使用多个宏块系数缓冲器以同时处理多个行。多个宏块系数缓冲器中的每一个提供宏块的少量的变换系数的存储空间。在熵编码对应于多个图片分区的变换系数之后,将比特流写入各自的多个第II类比特流分区(在本发明中称为子逻辑单元)。确定第一逻辑单元中的子存储器地址,以用于多个子逻辑单元的每一个。基于当前子逻辑单元的第一已压缩的数据的数据尺寸和和先前子存储地址确定第一逻辑单元中的子存储器地址。
图5A描述了在同一帧中使用重构的相邻宏块(宏块510a-宏块510d)的当前宏块510的帧内预测。当前宏块的帧内预测仅与顶部的宏块、左侧的宏块、顶部左侧的宏块、以及当前宏块的顶部右侧的宏块相关。实际上,对于当前宏块的帧内预测的先前行中的最新宏块为上述示例中的右上方的宏块510d。因此,一旦可获得宏块510d的重构,可以执行当前宏块510的帧内预测。此外,当前宏块510的帧内预测可以通过处理来自宏块510a-宏块510c的帧内预测并同时等待宏块510d重构来启动。对于帧间预测的宏块来说,不依赖同一帧中的相邻宏块。相应地,有可能同时执行宏块的多个行的编码过程,以产生分区比特流。图5B描述了同时处理两个宏块行(宏块行520和宏块行530)的过程的示例。宏块522为行520中正在处理的当前宏块以及宏块532为行530中正在处理的当前宏块。宏块524和宏块526为在行520中的重构宏块以及宏块534为行530中的重构宏块。本领域技术人员可以将上述同时处理的示例扩展至多于两个宏块行的情形。如上所述,可以使用多个宏块系数缓冲器以用于并行处理多行。若速度足够快时,则多行的并行处理可以共享相同熵编码器354。
图6描述了本发明实现的实时处理宏块的宏块模式/运动矢量的示范性视频编码器。宏块模式/运动向量缓冲器610用于存储宏块的模式和运动矢量。每当宏块的模式和运动矢量可用时,宏块的模式和运动矢量通过熵编码器354来处理,以及相应的已压缩数据被写入比特流缓冲器中的第I分区数据区域。在写入当前宏块的已压缩数据之后,地址控制器620将根据当前数据地址和对应于当前宏块的模式/运动矢量的已压缩数据622的尺寸来更新数据地址624。在处理完当前宏块的模式/运动矢量之后,宏块预测缓冲器610准备处理下一个宏块模式/运动向量。因此,本发明的实施方式可以使用较小的缓冲器来保持宏块的模式/运动矢量,而代替帧的模式/运动矢量。如上所述,可以使用对于多个宏块的具有足够大空间的宏块模式/运动矢量缓冲器。
图7描述了本发明体现的实时处理宏块模式/运动矢量以及宏块残差的变换系数的视频编码器的另一示例。宏块系数缓冲器410用于存储宏块残差的变换系数或宏块的变换系数。宏块模式/运动向量缓冲器610用于存储宏块的模式和运动向量。熵编码器354具有足够的速度来实时处理一个宏块系数和一个宏块模式/运动向量。因此,宏块系数和宏块模式/运动向量均可以实时处理而不需要缓冲后续宏块的宏块系数和宏块模式/运动向量。此外,单独的比特流缓冲器710a和比特流缓冲器710b用于分别存储对应于已压缩变换系数和已压缩模式/运动向量的比特流。开关S3用于选择目标比特流缓冲器(对应比特流缓冲器A的712a和对应比特流缓冲器B的712b)。在写入当前宏块的已压缩数据之后,地址控制器720会根据当前数据地址和对应于变换系数和当前宏块的模式/运动向量的已压缩数据722的尺寸分别更新数据地址724a和数据地址724b。在此示例中,对于变换系数和模式/运动向量来说,缓冲存储器的需求实质上降低了。当使用两个单独的比特流缓冲器710a和比特流缓冲器710b时,单一的比特流缓冲器也可以用于如图4和图6所示的示例中。
图8描述了本发明体现的实时处理宏块模式/运动向量和宏块残差的变换系数的示范性的视频编码器。除使用两个独立的熵编码器810a和熵编码器810b之外,图8中的编码器***相似与图7中的编码器***。地址控制器820分别自熵编码器810a和熵编码器810b接收宏块的已压缩数据相关的尺寸信息。地址控制器820分别提供数据地址824a和数据地址824b至比特流缓冲器710a和比特流缓冲器710b。
如上所述,系数分区可以进一步分割为多个分区以允许多个宏块行的并行处理。图5B描述了两个宏块行(宏块行520和宏块行530)的并行处理的示例。编码器***可以使用多个处理器以并行处理多个宏块行。当在计算机上使用多核CPU或在具有多个处理器的集成电路上实现编码时,多核CPU或多个处理器可以进一步配置为并行执行多个宏块行的编码。图9描述使用两核或两个处理器来执行两个宏块行的并行处理的示例。第一个核或处理器执行在第一个图片分区(分区IIA)中的宏块的预测数据计算910和变换/缩放/量化计算930,以及第二个核或处理器执行在第二个图片分区(分区IIB)中的宏块的预测数据计算912和变换/缩放/量化计算932。与图4中的编码器***相似,除了一个较小的宏块系数缓冲器(图9未示),实时处理宏块变换系数并且不需要使用帧系数存储器。在图9所示的示例中,使用单一的熵编码器940处理来自图片分区的运动信息和系数。开关S4选择四个输入(输入942a-输入942d)中的一个输入。使用三个比特流缓冲器(比特流缓冲器950a-比特流缓冲器950c)来存储已压缩的数据。比特流缓冲器950a-比特流缓冲器950c可以分别对应至与分区I、分区IIA和分区IIB相关的已压缩数据(在此示例中的两个系数分区)。当在此示例中使用三个比特流缓冲器时,也可以使用单一的比特流缓冲器来容纳三个比特流。图9所示的预测数据存储器也可以利用本发明的优点降低图7所示的宏块模式/运动向量。
实现本发明的示例如图10所示。在此示例中,图片单元被编码成分区的比特流。图片单元可以为帧、字段(field)、部分帧(例如,一组连续块组成的帧的片段)。为了使编码器利用多核或处理器的优势,比特流被组织为具有两种类型的分区比特流。如上所述,一种类型有关于预测数据,例如预测模式和运动向量,另一种类型有关于变换系数。根据本发明实施方式的编码器可以通过宏块的主要成分(macroblock basis)以宏块的方式编码图片单元并封装与图片单元相关的变换系数于单一的第II类分区中。或者,也可以将图片单元划分为区域,以使得与每一个区域相关的变换系数被封装在单独的第II类分区中。当在各种视频编码标准(例如,MPEG-2和H.264/AVC)中采用的16x16宏块被用于编码单元时,其他块尺寸和配置也被用于编码单元。第I类分区包括预测数据、例如编码模式(mb_type,sub_mb_type,mb_skip,等)、参考索引、帧内预测模式、量化参数信息、滤波器参数、以及与图片单元的处理单元相关的运动向量。如上所述,通过封装在第I类分区中的图片单元的预测数据而允许数据预取来设置并行解码。图片单元可以划分为多个区域。与图片分区的处理单元相关的变换系数被封装在各自的第II类型子分区中
图10描述了根据本发明实施方式的编码器的示范性流程图。如步骤1010所示,编码过程开始于接收与当前编码单元相关的第一视频参数,其中没有缓冲与后续编码单元相关的第一视频参数。在如上所述和相关图式(图4和图6)所示的各种实施方式中,第一视频参数可以对应至变换系数或运动数据。然后,如步骤1020所示,编码第一视频参数以产生对应于当前编码单元的当前第一已压缩数据。该过程可以使用熵编码器来完成需要的压缩。然后,存储第一已压缩数据于指定用于比特流分区的数据区域中。如上所述,在本发明揭示的数据区域被称为逻辑单元。如步骤1030所示,确定在第一逻辑单元中的第一存储地址,以用于与当前编码单元相关的第一已压缩数据。然后,如步骤1040所示,第一已压缩的数据可以被存储于位于第一逻辑单元中的第一存储地址。图10显示了实现本发明的示例。本领域技术人员可以在不脱离本发明的精神的前提下,修改个别步骤及/或从编排步骤的顺序,而达到与本发明相似的目标。
图11描述了根据本发明实施方式的编码器的示范性流程图。如图7和图8所示,本发明可以应用与变换系数和运动数据以产生分区的比特流,而不需要较大的存储器来缓冲数据。图11所示的流程图是为了增加对于图10的额外的处理过程。图10和图11中的处理过程可以顺序执行或并行执行。如步骤1110所示,图11的编码过程开始于接收与当前编码单元相关的第二视频参数,其中没有缓冲与后续编码单元相关的第二视频参数。然后,如步骤1120所示,编码第二视频参数以产生对应于当前编码单元的当前第二已压缩数据。该过程可以使用熵编码器来完成需要的压缩。然后,存储第二已压缩数据于指定用于第二比特流分区的数据区域中。如步骤1130所示,确定在第二逻辑单元中的第二存储地址,以用于与当前编码单元相关的第二已压缩数据。然后,如步骤1140所示,第二已压缩的数据可以被存储于位于第二存储地址的第二逻辑单元中。图11显示了实现本发明的示例。本领域技术人员可以在不脱离本发明的精神的前提下,修改个别步骤及/或从编排步骤的顺序,而达到与本发明相似的目标。
根据本发明如上所述的产生分区比特流的视频编码***的实施方式可以实现于各种硬件、软件代码、或其组合中,举例来说,本发明实施方式可以为集成于视频压缩芯片的多处理电路或集成于视频压缩软件来完成描述的处理过程的视频压缩软件。本发明实施方式也可以为在计算机CPU上执行描述的处理过程的程序代码,其中该计算机CPU具有多个CPU核或数字信号处理器。本发明也可以涉及计算机处理器、数字信号处理器、微处理器、或可编程门阵列执行的一些功能。通过执行本发明定义的特定方法的机器可读软件代码或固件代码,这些功能可以根据本发明被配置为执行特定任务。该软件代码或固件代码可以通过不同的程序语言和不同的格式或样式来开发。该软件代码也可以编译为用于不同的目标平台。然而,软件代码的不同的代码格式、样式或语言和配置代码执行与本发明任务一致的其他不同方式不会脱离本发明的精神和范围。
在不背离本发明精神和本质特征的情况下,本发明可以通过其他具体形式来体现。所描述的实施方式仅用于说明本发明的范围,而并非用于限制本发明。在与权利要求相等同的含义或范围内的所有变化均在本发明的保护范围之内。

Claims (28)

1.一种产生已分区比特流的视频编码方法,其特征在于,该已分区比特流包括第一逻辑单元和第二逻辑单元,该第一逻辑单元包括对应于图片的多个编码单元的第一已压缩数据,该第二逻辑单元包括对应于该多个编码单元的第二已压缩数据,该第一已压缩数据中的每一个以及该第二已压缩数据中的每一个能够重构该多个编码单元中的一个,该产生已分区比特流的视频编码方法包括:
接收与当前编码单元相关的第一视频参数,其中没有缓冲与该图片的所有后续编码单元相关的所有第一视频参数;
编码该第一视频参数以产生对应于该当前编码单元的当前第一已压缩数据;
确定在该第一逻辑单元中的第一存储地址;以及
将该当前第一已压缩数据提供给该第一逻辑单元中的第一存储地址。
2.根据权利要求1所述的产生已分区比特流的视频编码方法,其特征在于,该编码单元被配置为宏块。
3.根据权利要求1所述的产生已分区比特流的视频编码方法,其特征在于,该编码该第一视频参数以产生当前第一已压缩数据的步骤包括利用第一熵编码器。
4.根据权利要求1所述的产生已分区比特流的视频编码方法,其特征在于,基于该当前第一已压缩数据的数据尺寸和先前第一存储地址来确定在该第一逻辑单元中的第一存储地址。
5.根据权利要求1所述的产生已分区比特流的视频编码方法,其特征在于,与该当前编码单元相关的该第一视频参数包括与该当前编码单元或该当前编码单元的预测残差相关的已量化变换系数。
6.根据权利要求5所述的产生已分区比特流的视频编码方法,其特征在于,该第一逻辑单元进一步被划分为多个子逻辑单元,其中该多个子逻辑单元中的每一个对应至与该图片的区域相关的该编码单元的该第一已压缩数据。
7.根据权利要求6所述的产生已分区比特流的视频编码方法,其特征在于,该图片的该区域包括该编码单元的一个或多个行。
8.根据权利要求6所述的产生已分区比特流的视频编码方法,其特征在于,该编码该第一视频参数以产生当前第一已压缩数据的步骤包括利用一个或多个第一熵编码器。
9.根据权利要求6所述的产生已分区比特流的视频编码方法,其特征在于,进一步包括确定该第一逻辑单元中的子存储地址,以用于该多个子逻辑单元中的每一个。
10.根据权利要求9所述的产生已分区比特流的视频编码方法,其特征在于,基于当前子逻辑单元的该第一已压缩数据的数据尺寸和先前子存储地址确定在该第一逻辑单元中的该子存储地址。
11.根据权利要求1所述的产生已分区比特流的视频编码方法,其特征在于,进一步包括:
接收与该当前编码单元相关的第二视频参数,其中没有缓冲与该图片的所有后续编码单元相关的所有第二视频参数;
编码该第二视频参数以产生对应于该当前编码单元的当前第二已压缩数据;
确定在该第二逻辑单元中的第二存储地址;以及
将该当前第二已压缩数据提供给该第二逻辑单元中的第二存储地址。
12.根据权利要求11所述的产生已分区比特流的视频编码方法,其特征在于,与该当前编码单元相关的该第二视频参数包括与该当前编码单元相关的预测数据。
13.根据权利要求11所述的产生已分区比特流的视频编码方法,其特征在于,利用第一熵编码器编码该第一视频参数以产生该当前第一已压缩数据;以及利用该第一熵编码器或第二熵编码器编码该第二视频参数来产生该当前第二已压缩数据。
14.根据权利要求11所述的产生已分区比特流的视频编码方法,其特征在于,基于该当前第二已压缩数据的数据尺寸和先前第二存储地址确定在该第二逻辑单元中的该第二存储地址。
15.一种产生已分区比特流的视频编码装置,其特征在于,该已分区比特流包括第一逻辑单元和第二逻辑单元,该第一逻辑单元包括对应于图片的多个编码单元的第一已压缩数据,该第二逻辑单元包括对应于该多个编码单元的第二已压缩数据,该第一已压缩数据中的每一个以及该第二已压缩数据中的每一个能够重构该多个编码单元中的一个,该产生已分区比特流的视频编码装置包括:
接收与当前编码单元相关的第一视频参数的装置,其中没有缓冲与该图片的所有后续编码单元相关的所有第一视频参数;
编码该第一视频参数以产生对应于该当前编码单元的当前第一已压缩数据的装置;
确定在该第一逻辑单元中的第一存储地址的装置;以及
将该当前第一已压缩数据提供给该第一逻辑单元中的第一存储地址的装置。
16.根据权利要求15所述的产生已分区比特流的视频编码装置,其特征在于,该编码单元被配置为宏块。
17.根据权利要求15所述的产生已分区比特流的视频编码装置,其特征在于,该编码该第一视频参数以产生当前第一已压缩数据的装置利用第一熵编码器。
18.根据权利要求15所述的产生已分区比特流的视频编码装置,其特征在于,基于该当前先前第一已压缩数据的数据尺寸和先前第一存储地址来确定在该第一逻辑单元中的第一存储地址。
19.根据权利要求15所述的产生已分区比特流的视频编码装置,其特征在于,与该当前编码单元相关的该第一视频参数包括与该当前编码单元或该当前编码单元的预测残差相关的已量化变换系数。
20.根据权利要求19所述的产生已分区比特流的视频编码装置,其特征在于,该第一逻辑单元进一步被划分为多个子逻辑单元,其中该多个子逻辑单元中的每一个对应至与该图片的区域相关的该编码单元的该第一已压缩数据。
21.根据权利要求20所述的产生已分区比特流的视频编码装置,其特征在于,该图片的该区域包括该编码单元的一个或多个行。
22.根据权利要求20所述的产生已分区比特流的视频编码装置,其特征在于,该编码该第一视频参数以产生当前第一已压缩数据的装置利用一个或多个第一熵编码器。
23.根据权利要求20所述的产生已分区比特流的视频编码装置,其特征在于,进一步包括确定该第一逻辑单元中的子存储地址,以用于该多个子逻辑单元中的每一个。
24.根据权利要求23所述的产生已分区比特流的视频编码装置,其特征在于,基于当前子逻辑单元的该第一已压缩数据的数据尺寸和先前子存储地址确定在该第一逻辑单元中的该子存储地址。
25.根据权利要求15所述的产生已分区比特流的视频编码装置,其特征在于,进一步包括:
接收与该当前编码单元相关的第二视频参数,其中没有缓冲与该图片的所有后续编码单元相关的所有第二视频参数;
编码该第二视频参数以产生对应于该当前编码单元的当前第二已压缩数据;
确定第二逻辑单元中的第二存储地址;以及
将该当前第二已压缩数据提供给该第二逻辑单元中的第二存储地址。
26.根据权利要求25所述的产生已分区比特流的视频编码装置,其特征在于,与该当前编码单元相关的该第二视频参数包括与该当前编码单元相关的预测数据。
27.根据权利要求25所述的产生已分区比特流的视频编码装置,其特征在于,利用第一熵编码器编码该第一视频参数以产生该当前第一已压缩数据;以及利用该第一熵编码器或第二熵编码器编码该第二视频参数来产生该当前第二已压缩数据。
28.根据权利要求25所述的产生已分区比特流的视频编码装置,其特征在于,基于该当前第二已压缩数据的数据尺寸和先前第二存储地址确定在该第二逻辑单元中的该第二存储地址。
CN201280055934.4A 2011-11-14 2012-03-15 产生已分区比特流的视频编码装置及方法 Active CN103947211B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/295,956 2011-11-14
US13/295,956 US20130121410A1 (en) 2011-11-14 2011-11-14 Method and Apparatus of Video Encoding with Partitioned Bitstream
PCT/CN2012/072362 WO2013071721A1 (en) 2011-11-14 2012-03-15 Method and apparatus of video encoding with partitioned bitstream

Publications (2)

Publication Number Publication Date
CN103947211A true CN103947211A (zh) 2014-07-23
CN103947211B CN103947211B (zh) 2017-07-14

Family

ID=48280627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280055934.4A Active CN103947211B (zh) 2011-11-14 2012-03-15 产生已分区比特流的视频编码装置及方法

Country Status (3)

Country Link
US (2) US20130121410A1 (zh)
CN (1) CN103947211B (zh)
WO (1) WO2013071721A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108353180A (zh) * 2015-09-02 2018-07-31 黑莓有限公司 具有延迟重构的视频编码

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188732A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Multi-Threaded Texture Decoding
KR101966064B1 (ko) * 2012-09-06 2019-04-05 삼성전자주식회사 파이프라인 디코딩을 위한 비트스트림 처리 장치 및 이를 포함하는 멀티미디어 장치
US9645985B2 (en) * 2013-03-15 2017-05-09 Cyberlink Corp. Systems and methods for customizing text in media content
JP6242139B2 (ja) * 2013-10-02 2017-12-06 ルネサスエレクトロニクス株式会社 動画像復号処理装置およびその動作方法
US9785369B1 (en) * 2016-05-23 2017-10-10 Accenture Global Solutions Limited Multiple-link blockchain
US10735736B2 (en) * 2017-08-29 2020-08-04 Google Llc Selective mixing for entropy coding in video compression
US20230140628A1 (en) * 2021-11-04 2023-05-04 Meta Platforms, Inc. Novel buffer format for a two-stage video encoding process

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272180B1 (en) * 1997-11-21 2001-08-07 Sharp Laboratories Of America, Inc. Compression and decompression of reference frames in a video decoder
US7346111B2 (en) * 2003-12-10 2008-03-18 Lsi Logic Corporation Co-located motion vector storage
US8427494B2 (en) * 2004-01-30 2013-04-23 Nvidia Corporation Variable-length coding data transfer interface
KR100750137B1 (ko) * 2005-11-02 2007-08-21 삼성전자주식회사 영상의 부호화,복호화 방법 및 장치
US7545293B2 (en) * 2006-11-14 2009-06-09 Qualcomm Incorporated Memory efficient coding of variable length codes
US20080310515A1 (en) * 2007-06-14 2008-12-18 Yasutomo Matsuba MPEG-2 2-Slice Coding for Simple Implementation of H.264 MBAFF Transcoder
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
JP2009260421A (ja) * 2008-04-11 2009-11-05 Fujitsu Ltd 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
US20090290636A1 (en) * 2008-05-20 2009-11-26 Mediatek Inc. Video encoding apparatuses and methods with decoupled data dependency

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108353180A (zh) * 2015-09-02 2018-07-31 黑莓有限公司 具有延迟重构的视频编码
CN108353180B (zh) * 2015-09-02 2022-07-26 黑莓有限公司 具有延迟重构的视频编码

Also Published As

Publication number Publication date
US20130121410A1 (en) 2013-05-16
CN103947211B (zh) 2017-07-14
US20170013263A1 (en) 2017-01-12
US10237554B2 (en) 2019-03-19
WO2013071721A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
CN103947211A (zh) 具有已分区比特流的视频编码装置及方法
JP7098805B2 (ja) ニューラルネットワークを利用したコーデック
JP5474546B2 (ja) 低減された解像度の分割の方法及び装置
CN100584025C (zh) 一种基于内容自适应的算术解码***及装置
US9807410B2 (en) Late-stage mode conversions in pipelined video encoders
JP4182442B2 (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
CN102316320B (zh) 处理视频图像的方法
US9380314B2 (en) Pixel retrieval for frame reconstruction
CN103597838B (zh) 对末位有效系数的位置进行编码和解码的方法和设备
US8233537B2 (en) Efficient implementation of H.264 4 by 4 intra prediction on a VLIW processor
US8902994B1 (en) Deblocking filtering
US9001882B2 (en) System for entropy decoding of H.264 video for real time HDTV applications
Pescador et al. Complexity analysis of an HEVC decoder based on a digital signal processor
CN102150425A (zh) 用于使用并行处理来进行解码的***和方法
CN101107861A (zh) 重叠平滑与环路内解块之分段处理
JP2021521728A (ja) ビデオ符号化及び復号のための方法、装置及びコンピュータプログラム
CN101166277B (zh) 在用于处理运动图像的设备中访问存储器的方法
CN101252694A (zh) 基于块的视频解码的帧存储压缩和地址映射***
CN109716768A (zh) 存储和检索高位深度图像数据
JP5717886B2 (ja) デジタル画像のシーケンスを符号化する方法
JP2006157925A (ja) パイプラインデブロッキングフィルタ
KR100827093B1 (ko) 영상 부호화 방법 및 장치
CN103248891B (zh) 一种基于n-bit截尾量化和块内二维预测的参考帧压缩方法
CN101790096A (zh) 基于二重预测的编解码方法及装置
WO2021056214A1 (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
GR01 Patent grant
GR01 Patent grant