CN1642282A - 视频编码系统 - Google Patents
视频编码系统 Download PDFInfo
- Publication number
- CN1642282A CN1642282A CNA2005100021032A CN200510002103A CN1642282A CN 1642282 A CN1642282 A CN 1642282A CN A2005100021032 A CNA2005100021032 A CN A2005100021032A CN 200510002103 A CN200510002103 A CN 200510002103A CN 1642282 A CN1642282 A CN 1642282A
- Authority
- CN
- China
- Prior art keywords
- packet header
- texture
- group
- bag
- coding
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02K—DYNAMO-ELECTRIC MACHINES
- H02K15/00—Methods or apparatus specially adapted for manufacturing, assembling, maintaining or repairing of dynamo-electric machines
- H02K15/0006—Disassembling, repairing or modifying dynamo-electric machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02K—DYNAMO-ELECTRIC MACHINES
- H02K15/00—Methods or apparatus specially adapted for manufacturing, assembling, maintaining or repairing of dynamo-electric machines
- H02K15/02—Methods or apparatus specially adapted for manufacturing, assembling, maintaining or repairing of dynamo-electric machines of stator or rotor bodies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02W—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO WASTEWATER TREATMENT OR WASTE MANAGEMENT
- Y02W30/00—Technologies for solid waste management
- Y02W30/50—Reuse, recycling or recovery technologies
- Y02W30/82—Recycling of waste of electrical or electronic equipment [WEEE]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Manufacturing & Machinery (AREA)
- Power Engineering (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
披露了一种数字视频编码系统,尤其披露了能够减少控制视频编码系统的CPU(中央处理器)负荷的技术,所述视频编码系统用于执行数字视频数据压缩/解压缩标准,如MPEG-1、2、4、H.261或H.263.。在常规的视频编码系统中,可变长度编码器的电路结构和控制方法随视频压缩/解压缩标准的发展而日益变得复杂。在常规的系统结构中,必须执行复杂的控制操作,因此存在增加控制所述视频编码系统负荷的问题。因此,提供减少控制VLC(可变长度编码)元件所必需的CPU负荷的视频编码技术。
Description
技术领域
本发明涉及数字视频编码技术,尤其涉及一种通过DCT(离散余弦变换)、运动补偿和运动估算实行视频编码的系统和方法。
背景技术
在常规的视频编码系统中,可变长度编码器的电路结构和控制方法随视频压缩/解压缩标准的发展而日益变得复杂。例如,当使用MPEG-4(活动图像专家组4)视频编码标准对视频进行编码时,数据划分(datapartitioning)模式可用于提高容错弹性(error resilience)。在这种情况下,单个视频包(packet)的视频宏块的纹理(texture)和两个包头必须在类型对类型的基础上进行传送。在用于分别传送包头和宏块元件中纹理的可变长度编码器的构造,必须进行复杂的控制以使用户装配视频包,因此存在增加了控制所述视频编码系统的CPU(中央处理器)负荷的问题。
附图1为说明基于MPEG-4的常规编码器的实例的方框图。参照附图1,编码器100包括ME(运动估算)元件101;MC(运动补偿)元件;DCT/Q(离散余弦变换/量子化)元件103a;ADP(交流-直流预测)元件104;VLC(可变长度编码)元件105;和IQ/IDCT(反量子化/反离离散余弦变换)元件106。
所述ME元件101执行计算从在先帧到当前帧的运动变化的任务。该任务的结果由运动矢量表示。所述运动矢量表示相关的宏块或从之前帧到当前帧的模块的数量和运动方向。当使用这种运动估算时,取消临时重复并由此减少了编码量。所述宏块由16×16像素构成并配有4个发光模块和2个色度模块。因此,所述宏块总共包含6个模块并且每个模块由8×8像素组成。
所述MC元件被分成MC(-)(MC负)102a和MC(+)(MC正)107。所述MC(-)102a执行根据当前帧减除在先帧的运动估算结果的任务,由此产生其中移除了临时重复的帧数据。所述MC(+)107执行为MC(-)102a中使用的在先帧增加将在下文描述的IQ/IDCT部分106产生的结果,进而获得通过解码器将被最后观看的视频帧。该视频帧在下一个帧被编码时用作在先帧。
所述DCT/Q元件103a将空间域的视频数据变换成频率域的视频数据,并将变换的结果量化以便把频率域的视频数据限制在离散数据集。
所述ADP元件104在当前模块的AC/DC系数与周围模块的AC/DC系数之间产生差值。这样做的目的是利用空间连续性减少编码数量。
所述VLC元件105在ADP已经完成的系数上执行可变长度编码,从而生成编码的比特流。在此,所述比特流被配置成包含预定数量宏块的数据的视频包形式。
所述IQ/IDCT元件106在DCT/Q已经完成的系数上执行反量化并将反量化的结果变换成空间域的数据。IQ/IDCT之后的视频不同于MC(-)之后的视频,其中由于DCT/Q元件103a和IQ/IDCT元件106的量化和反量化而稍微丢失了IQ/IDCT之后的视频数据。可是,获取基于所述量化和反量化的视频数据以便产生适于解码器的视频数据。
附图2是说明常规图像编码系统的方框图。所述常规的视频编码系统包括编码器100、存储器204和205、CPU(中央处理器)201、主存储器202和数据总线203。
编码器100被分成运动估算段和纹理编码段。所述运动估算段配有ME(运动估算)元件101,而所述纹理编码配有MC(运动补偿)元件102、DCT/IDCT(离散余弦边缘/反离散余弦变换)元件103、ADP(交流-直流预测)元件104和VLC(可变长度编码)元件105。能够彼此单独地运行所述两个段。可是,纹理编码需要执行ME后产生的运动矢量。
ME元件101中的ME在宏块元件中运作。在ME过程中,包括元件102至105的纹理编码段重复基于模块元件的操作6次。
所述存储器204和205存储纹理编码必需的数据,并且所述CPU 201和主存储器202控制与模块相关的操作。
提供数据总线203以便所述编码器100能够与外存储器交换数据。
附图3示出了用于运用基于流水线结构的编码器编码由N个宏块构成的帧的方法序列。
首先,执行宏块0的ME(运动估算)。在此,因为宏块0的运动矢量不存在,所以不能执行宏块0的纹理编码。
随后,在执行宏块1的ME的同时,出现宏块0的运动矢量并同时执行宏块0的纹理编码。这样,当执行编码时,不能执行最后宏块的ME而仅仅执行最后宏块的纹理编码。
附图4为说明常规VLC(可变长度编码)元件的方框图。
指示宏块的特征以及包含视频数据的纹理的包头配置编码宏块。
包头编码控制部件(header_ctrl)306用于控制包头编码。
包头ROM(只读存储器)表格(mb_rom)307包括包头编码所必需的各种表格。
包头存储器(hmem)305存储包头编码的结果。
纹理编码控制部件(texture_ctrl)302用于控制纹理编码。
纹理ROM表格(ac_rom)303包括纹理编码所必需的各种表格。
纹理存储器(tmem)301存储磁纹理纹理编码的结果。
VLC寄存器(vlc_reg)304从CPU 201接收包头和纹理编码所必需的各种设置项目并将接收到的设置项目提供给纹理编码控制部件(texture_ctrl)302和包头编码控制部件(header_ctrl)306。此外,所述VLC寄存器(vlc_reg)304接收指示作为纹理编码控制部件(texture_ctrl)302和包头编码控制部件(header_ctrl)306编码结果的已经产生多少比特的信息,并将所接收到的信息提供给CPU 201。
附图5为说明当数据被划分时VP(视频包)编码工序的流程图。比特流的固定长度编码(再同步标记)被设置在VP包头中,而部分的帧包头信息会在固定长度编码之后重复,进而提高了容错弹性。比特流的固定长度编码(再同步标记)被设置在vp包头中,而部分的帧包头信息会在固定长度编码之后重复,进而提高了容错弹性。数据划分模式是一种用于将重要的包头信息定位在VP前段的操作模式。包头根据重要性被分成包头1和包头2。由特殊比特流构成的标记被插入在包头1和包头2之间。由特殊比特流构成的标记被插入在包头1和包头2之间。
参照附图5,插入再同步标记和VP包头(S100)。
随后,执行宏块编码(S110)。当所述编码完成时,包头1和包头2的比特流被存储在包头存储器(hmem)305并且纹理的比特流被存储在所述纹理存储器(tmem)301。
随后,所述主存储器202在单独的空间内分别存储包头1、包头2以及纹理的比特流(S112至S116)。在VP中包含的所有宏块都被编码之后,需要无关空间使得包头1、包头2和纹理能够与其他的包头1、其他的包头2和其他的纹理分别合并。
随后,根据是否VP已经完成进行判定(S118)。计算所述VP的第一宏块之后的包头1、包头2和纹理的总长度值。当所述计算的数值大于预定目标值时,断定所述VP已经完成。
如果所述VP已经完成,则执行步骤S122。否则,执行上述步骤S110。在上述步骤S122处,执行用于组包由对应当前VP的宏块产生的包头1、包头2和纹理的工序。
最后,在步骤S124取得VP流。
如上所述,用户必须合并作为现有技术中宏块编码结果的包头和纹理比特流,并由此增加了CPU的负荷。特别地,当已经划分了数据时,所述VP中所有宏块的包头1、包头2和纹理被分别存储。因此,当所述VP已经完成时,用户必须执行用于合并包头1、包头2和纹理的组包任务。所述组包任务需要大量比特变换和存储的输入和输出,导致了CPU负荷的增加。通过常规的编码系统,即使改变编码方法也不能根本地提出。
发明内容
因此,鉴于上述和其他问题实现本发明,并且本发明的一个目的是减少CPU(中央处理器)的负荷,所述CPU控制用于执行数字视频数据压缩/解压缩标准,如MPEG-1、2、4,H.261或H.263的视频编码系统。
根据本发明的一个方面,通过提供用于通过DCT(离散余弦变换)、MC(运动补偿)和ME(移动估算)执行视频编码的视频编码系统实现上述和其他目的,所述系统包括:用于产生当前宏块的MAD(平均偏差值)值的MC元件;基于所述MAD值和QP(量化参数)估算当前宏块的比特数目并控制VP(视频包)一端的控制部件;和用于执行所述ME、纹理编码以及与所述控制部件控制下VP的所有宏块相关的组包任务的VLC(可变长度编码)元件。
附图的简要说明
结合附图,根据以下的详细说明能够清楚地理解本发明的上述及其他目的、特征及其他优势,在所述附图中:
附图1是说明常规编码器的方框图;
附图2是说明常规视频编码系统的方框图;
附图3示出了使用基于流水线结构的编码器编码由N个宏块构成的帧的方法序列;
附图4为说明常规VLC(可变长度编码)元件的方框图;
附图5为说明在划分数据时VP(视频包)编码处理的流程图;
附图6是说明根据本发明的视频编码系统的方框图;
附图7是说明根据本发明的VLC元件的方框图;
附图8为说明根据本发明的组包执行部件(pack_ctrl)的方框图;
附图9示出了未划分数据时进行组包的实例;
附图10示出了划分数据时进行组包的实例;
附图11为根据本发明说明划分数据时VP编码过程的流程图;
附图12是说明基于等式1的实验材料的图表;
附图13为根据上述等式1中示出的“偏差”值说明实际比特数量小于宏块的预算比特数量“bit_est”的概率图表;以及
附图14为说明在根据本发明划分数据时,处理VLC溢出过程的流程图。
优选实施例说明
现在,参照附图详细描述本发明的多个优选实施例。
附图6是说明根据本发明的视频编码系统的方框图。
参照附图6,根据本发明的所述视频编码系统包括编码器400、存储器404和405CPU(中央处理器)401、主存储器402和数据总线403。这些元件的功能与附图2中所示常规视频编码系统里的编码器100、存储器204和205、CPU 201、主存储器202和数据总线203的功能相同。根据本发明的视频编码系统与所述常规视频编码系统的区别在于改善了VLC(可变长度编码)元件406以便能够有效地执行组包任务以及产生并输出MAD(平均偏差值)值。
所述MAD值是通过在计算当前帧数据和单一宏块的运动估算数据之间差值之后,将像素绝对值的和分成256产生的数值。随所述MAD值增加,编码的比特流长度也增加。
参考数字411表示由所述MC元件409产生的MAD值,而参考数字412表示将施加给当前宏块的QP(量化参数)值。如下所述,所述MAD值和QP值用于估算对当前宏块编码之后的比特数目。此外,参考数字413表示提供给VLC元件406的组包信息。当所述组包信息时,对当前宏块执行组包。否则,当所述组包信息为0时,不执行组包。作为参考,可通过熟知的控制量化率的运算法则确定所述QP值。
附图7是说明根据本发明的VLC元件406的方框图。
包头ROM(只读存储器)表格(mb_rom)508包含包头编码必需的各种表格。
包头存储器(hmem)506存储包头编码的结果。根据数据划分模式可将包头分为包头1和包头2。
纹理编码控制部件(texture_ctrl)502用于控制纹理编码。
纹理ROM表格(ac_rom)503包括纹理编码所需的各种表格。
纹理存储器(tmem)501存储纹理编码的结果。
组包执行部件(pack_ctrl)504用于组包所述包头和纹理。所述组包任务从包头存储器(hmem)506和/或所述纹理存储器(tmem)501中读取预定单位的数据,并组包所读取的数据以及将该数据再写到所述包头存储器(hmem)506中。
在以下情况中执行所述组包任务。
首先,在通过与来自CPU401的组包信息,即启动宏块编码之前的PEN值413相关联的控制信号进行宏块编码之后接收组包命令的时候,执行所述组包任务。
其次,在所述纹理存储器(tmem)501或所述包头存储器(hmem)506溢出而同时正执行所示宏块编码的时候,执行所述组包任务。
VLC寄存器(vlc_reg)505从所述CPU401接收包头和纹理编码所必需的各种设置项目,并将所接收到的设置项目提供给所述纹理编码控制部件(texture_ctrl)502、组包执行部件(pack_ctrl)504和包头编码控制部件(header_ctrl)507。
附图8为说明根据本发明的组包执行部件(pack_ctrl)504的方框图。参照附图8,所述组包执行部件(pack_ctrl)504包括组包控制子部件(组包控制)601、组包操作子部件(pshifter)602、纹理存储控制子部件605和包头存储控制子部件606。
所述组包控制子部件(组包控制)601用于完全控制组包执行部件(pack_ctrl)。在此,从VLC寄存器(vlc_reg)505输入的信号“pack_en”具有与PEN值413相等的数值并表示是否必须启动组包。
此外,从包头编码控制部件(header_ctrl)507输入的信号“hend”表示当前宏块中的包头编码已经完成。信号“hoverflow”表示不管所述信号“pack_en”必须执行组包,因为在包头编码过程中已经发生溢出。
此外,从纹理编码控制部件(texture_ctrl)502输入的信号“tend”表示当前宏块中的纹理编码已经完成。因为在纹理编码过程中已经发生溢出,所以信号“toverflow”表示不管所述信号“pack_en”而必须执行组包。
通过所述信号“pack_en”、“toverflow”或“hoverflow”为1时的信号″tend″和″hend″,所述组包控制子部件(组包控制)601确定是否包头编码和纹理编码已经分别完成。如果所述包头编码和纹理编码已经分别完成,则所述组包控制子部件(组包控制)601通过信号“p_start”发送启动命令。
所述组包操作子部件(p shifter)602执行组包任务。所述组包操作子部件(pshifter)602从所述包头编码控制部件(header_ctrl)507接收信号“h1_start_pos”、“h1_end_pos”、“h2_start_pos”、和“h2_end_pos”。所述信号“h1_start_pos”、“h1_end_pos”、“h2_start_pos”和“h2_end_pos”分别表示包头1的起始位置、包头1的端部位置、包头2的起始位置和包头2的端部位置。在不划分数据时,包头1的开始和端部位置对应单一包头的开始和端部位置。当划分数据时,信号“h2_start_pos”和“h2_end_pos”的数值有效。具有“_pos”后缀的信号表示基于纹理存储器501或包头506中比特单元的位置。
来源于所述纹理编码控制部件(texture_ctrl)502的信号″t_start_pos″和″t_end_pos″分别表示当前宏块中纹理的开始和端部位置。
所述组包操作子部件(p shifter)602包括变换与合并的元件603以及寄存器文件元件604。
所述变换与合并元件603适当地变换和合并所述纹理存储器(tmem)501和/或所述包头存储器(hmem)506的两个32比特单元(unit),并生成作为组包任务结果的新的32比特单元。
所述寄存器文件元件604存储信号“pre_h1_start_pos”、“pre_h2_start_pos”和“pre_t_start_pos”,并且仅在划分数据时使用该寄存器文件元件。
所述信号“pre_h1_start_pos”表示与包头存储器(hmem)506中VP的第一宏块相关的包头1的开始位置。所述信号“pre_h2_start_pos”表示与包头存储器(hmem)506中VP的第一宏块相关的包头2的开始位置。
所述信号“pre_t_start_pos”表示与所述纹理存储器(tmem)501中VP的第一宏块相关联的纹理的开始位置。因为VP中所保护的所有宏块的编码数据在划分数据时必须被组包,所以需要存储寄存器文件元件604中的内容。
所述纹理存储控制子部件605将纹理存储器(tmem)501的组包任务所必需的数据发送至组包操作子部件(pshifter)602。
所述包头存储控制子部件606将包头存储器hmem)506的组包任务所必需的数据发送至组包操作子部件(pshifter)602,并将组包的数据写到包头存储器(hmem)506中。如果所述包头存储器(hmem)506存满了组包的数据,则所述组包的数据随后被写到所述纹理存储器(tmem)中。
附图9示出了未划分数据时进行组包的实例。
信号“h1_start_pos”和“t_start_pos”表示开始写入包头和纹理的位置(基于比特单元)。当开始宏块编码并且所述包头和纹理都被编码时,信号“h1_end_pos”和“t_end_pos”表示所述包头和纹理的端部位置。因此,如果组包已经完成,则信号“p_end_pos”表示所述包头和纹理被组包之后的最后宏块数据。
当数据未被划分时,从CPU401发出命令以完成与所有宏块相关的组包任务。在本实施例中,所述包头存储器(hmem)和所述纹理存储器(tmem)分别具有32比特的宽度,如附图9所示,并能存储128字或4096比特。
所述信号“h1_start_pos”可具有0和4095之间的数值,并根据在先宏块流的端部位置建议其具有0和31之间的数值。所述信号“t_start_pos”可具有0和4095之间的数值,并建议其具有0的数值以便最大限度地保障写入编码结果所需的空间。当已经完成一个宏块的编码时,可根据信号“h1_start_pos”和“p_end_pos”获取编码流。
附图10示出了未划分数据时进行组包的实例。在此,将被编码的VP由三个宏块构成。
参照附图10,信号“h1_start_pos”、“h2_start_pos”和“t_start_pos”表示开始写入包头1包头2和第三宏块,即VP最后宏块的纹理的位置(基于比特单元)。
信号“pre_h1_start_pos”、“pre_h2_start_pos”和“pre_t_start_pos”表示开始写入包头1包头2和第一宏块纹理的位置(基于比特单元),并且在组包时刻使用这些信号。
信号“h1_end_pos”,“h2_end_pos”和“t_end_pos”表示写入包头1、包头2和VP最后宏块纹理的端部位置。
附图10阐明了与第二宏块相关联的PEN值413被设置为0时的编码操作,并且与第三宏块,也就是VP的最后宏块相关联的PEN值413被设置为1。当包头1、包头2和VP最后宏块的纹理已经被完全编码时,顺序组包包头1、包头2和三个宏块的纹理。
当所述纹理存储器(tmem)溢出而同时正编码所述第三宏块的时候,不顾所述PEN值413强迫组包第一和第二宏块,并终止所述VLC。
当划分数据时,可发生三种类型的溢出。
所述溢出“h1 overflow”表示包头1编码的结果超过“h2_start_pos”(即,包头2的起始地址)的情况。
溢出“h2 overflow”表示包头2编码的结果超过包头存储器(hmem)的大小的情况。
溢出“toverflow”表示纹理编码的结果超过纹理存储器(tmem)的大小的情况。
附图11为根据本发明说明划分数据时VP编码过程的流程图。
在步骤S200,插入再同步标记和VP包头。
在步骤S210,比特流的长度,也就是当前宏块的比特数被估算作为当前宏块的编码结果。
按照以下等式1估算宏块的比特数。
等式1
bit_est=140×(MAD/QP)+偏差
在上述的等式1中,“bit_est”表示估算的比特数,“140”为实验得出的数值而“偏差”为等于或大于0的数值。随所述大小的“偏差”值增加,小于“bit_est”值的实际比特数概率也相应增加。在附图13示出了详细的数值。
因为“bit_est”值的实际比特数的概率随“偏差”值增加而减少,所以能够阻止溢出,但估算的比特数相比于实际的比特数而倾向于大幅地增加。在上述等式1中,MAD和QP比特另一模块之前产生的数值,而不需要专门地产生。
在步骤S212,根据是否必需执行VP组包任务进行判定。当为当前VP的长度值添加估算数值后的数值大于预定VP的长度值或下一个宏块被包含在当前的VP中时,可预测所述包头存储器(hmem)或纹理存储器(tmem)溢出。在这种情况下,所述PEN413设置为1,执行与当前宏块相关的组包任务并完成VP。
在步骤S214,执行宏块编码。
在步骤S216,确定是否当前的宏块为VP的最后宏块。如果所述当前宏块为VP的最后的宏块,所述程序进行到步骤S218。否则,所述程序进行到上述步骤S210。
在上述的步骤S218,完成的VP流被送至所述主存储器402。
附图12为说明基于上述等式1的实验材料的图表。所述图表示出了每个宏块的比特数与MAD/QP值之间的关系。可以看出宏块之间的比特数是不同的并且每个宏块的比特数与MAD/QP值成比例。
附图13为根据上述等式1中所示″偏差″值说明实际比特数小于宏块的估算比特数″bit_est″的概率的图表。其中“偏差”值为50、70和100,实际比特数小于宏块的估算比特数“bit_est”的概率分别近似为95.0%、98.1%和99.4%。
如果目标VP长度几乎等于纹理存储器(tmem)或包头存储器(hmem)的大小,则在“偏差”值充分大时能够最小化溢出。
如果目标VP长度小于纹理存储器(tmem)或包头存储器(hmem)大小很多,则的近似50.小,则在“偏差”值近似为50时几乎不会发生溢出。
附图14为根据本发明说明在划分数据时,处理VLC溢出的程序的流程图。
当发生溢出同时对第(N-1)个宏块编码时,包头1、包头2和直到第(N-1)个宏块编的纹理被组包并随后完成宏块编码。
如果在发生溢出时第(N+1)个宏块的ME(移动估算)正处于处理之中,则所述处理必须等到所述ME完成。
随后,编码第N个宏块。在此,因为MC元件409和ME元件410的存储器和寄存器内容被存储而适用于第(N+I)个宏块,所以需要再次执行第N个宏块的ME。
随后,工作状态进入可同时执行第(N+1)个宏块ME和第N个宏块的TC(纹理编码)的标准状态。
因此,无论何时发生溢出,只另外需要对两个宏块进行一次编码。可是,即使相比视频包的最大尺寸所述纹理存储器(tmem)的尺寸被设置成近似增加200比特的尺寸,溢出发生的概率也保持再2/100,000.以下。假定包含在所述视频包中的宏块的平均数量比特15,则在更大地设置纹理存储器(tmem)尺寸时能够更加缩小溢出发生的概率。
作为一种少有的情况,如果未划分数据时所述包头存储器(hmem)或纹理存储器(tmem)在编码过程中溢出,则停止编码系统。倘若如此,在停止时刻正被编码的宏块数据保持在数据未被组包的状态。所述未组包的宏块数据接近噪音数据。在这种情况下,在QP值增加之后可再尝试进行编码处理。
如下为本发明的有利效果。
首先,通过完全支持基于VLC(可变长度编码)的组包任务,即合并包头(包括划分数据时的包头1和包头2)和纹理的处理,所述视频编码系统能够减少CPU(中央处理器)的负荷。
第二,因为在宏块编码和视频包编码完成之后不另外需要与VLC存储器相关的读取/写入操作、转换操作(shift operation)和逻辑运算,所以本发明能够减少CPU的负荷。
第三,能够简化视频编码系统的控制。用户能够在宏块编码或视频包编码完成之后轻易地将纹理存储器(tmem)的内容转移到主存储器。
第四,当划分数据时,能够消除溢出并将视频包的各自宏块数据同时存储在纹理存储器(tmem)和包头存储器(hmem)中,以便支持组包任务。当使用上述等式1估算宏块的比特数时,溢出发生的概率可被降至1/100,000以下。当发生溢出时,额外需要对两个宏块进行一次编码但相比于由组包支持减少的CPU负荷是无关紧要的。
尽管为了说明的目的已经描述了本发明的优选实施例,但本领域技术人员应当理解,在不脱离所附权利要求披露的本发明的范围和精神的情况下,可进行各自修改、添加和替换。
Claims (9)
1.一种用于通过DCT(离散余弦变换)、MC(运动补偿)和ME(移动估算)执行视频编码的视频编码系统,其包括:
用于产生当前宏块的MAD(平均偏差值)值的MC元件;
用于根据MAD值和QP(量化参数)计算当前宏块的比特数并控制VP(视频包)的一端的控制部件;以及
用于执行所述ME、纹理编码和与所述控制部件控制下VP的所有宏块相关的组包任务的VLC(可变长度编码)元件。
2.根据权利要求1所述的视频编码系统,其中当直到在先宏块之前添加至比特数和的bit_est值的数值大于预定VP长度时,所述控制部件利用等式计算当前宏块的比特数并确定VP的端部,以及
其中所述等式是bit_est=k×MAD/QP+偏差,其中bit_est表示所述计算的比特数,k表示实验得出的常数,而所述偏差为用于控制在计算的比特数范围内将被编码的宏块概率的参数。
3.根据权利要求1所述视频编码系统,其中所述VLC元件包括:
用于控制包头编码的包头编码控制部件(header_ctrl);
包头ROM(只读存储器)表格(mb_rom)包括包头编码必需的各种表格;
用于存储包头编码结果的包头存储器(hmem);
用于控制纹理编码的纹理编码控制部件(texture_ctrl);
包括纹理编码所需各种表格的纹理ROM表格(ac_rom);
用于存储纹理纹理编码结果的纹理存储器(tmem);
用于组包所述包头和纹理的组包执行部件(pack_ctrl);和
用于存储包头和纹理编码所必需的各种设置项目的VLC寄存器(vlc_reg)。
4.根据权利要求3所述的视频编码系统,其中所述组包执行部件(pack_ctrl)包括:
用于完全控制所述组包执行(pack_ctrl)的组包控制子部件;
用于执行所述组包任务的组包操作子部件;
用于将纹理存储器(tmem)的组包任务所必需的数据发送至组包操作子部件的纹理存储控制子部件;和
用于将包头存储器(hmem)的组包任务所必需的数据发送至组包操作子部件,并将所组包的数据写入所述包头存储器(hmem)的包头存储控制子部件。
5.根据权利要求4所述的视频编码系统,其中在信号pack_en、toverflow或hoverflow为1时,所述组包控制子部件通过信号tend和hend确定是否包头编码和纹理编码已经分别完成,并且如果包头编码和纹理编码已经分别完成,这所述组包控制子部件通过信号“p_start”发送组包开始命令。
6.根据权利要求4所述的视频编码系统,其中所述组包操作子部件包括:
用于适当地变换和合并所述纹理存储器(tmem)和/或包头存储器(hmem)的两个A-比特单元数据的变换及合并元件,并生成新的A-比特单元作为组包的结果,A-比特单元中包含的“A”比特等于或大于纹理存储器(tmem)宽度值以及包头存储器(hmem)宽度值的数值;和
用于存储信息(pre_h1_start_pos、pre_h2_start_pos和pre_t_start_pos)的寄存器文件元件,所述信息表示包头1、包头2和VP第一宏块的纹理数据的开始位置,以便能够组包VP中包含的所有宏块的编码数据。
7.根据权利1至6中任一所述的视频编码系统,其中所述当前宏块的编码数据在常规的VP情况下被组包并被写入包头存储器(hmem)。
8.根据权利1至6中任一所述的视频编码系统,其中在划分VP数据时,所述当前VP中包含的所有宏块的编码数据被组包并被写入包头存储器(hmem)。
9.根据权利要求8所述的视频编码系统,其中所述视频编码系统执行以下步骤:
当所述纹理存储器(tmem)或所述包头存储器(hmem)溢出同时在第N个宏块处执行纹理编码时,强迫组包当前VP中的第一宏块至第(N-1)个宏块;
再执行第N个宏块中的ME;和
同时执行第N个宏块中的纹理编码和第(N+1)个宏块中的ME。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040002200 | 2004-01-13 | ||
KR10-2004-0002200 | 2004-01-13 | ||
KR20040002200A KR100556340B1 (ko) | 2004-01-13 | 2004-01-13 | 영상 부호화 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1642282A true CN1642282A (zh) | 2005-07-20 |
CN100397905C CN100397905C (zh) | 2008-06-25 |
Family
ID=34738051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100021032A Active CN100397905C (zh) | 2004-01-13 | 2005-01-13 | 视频编码系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7620104B2 (zh) |
JP (1) | JP4142652B2 (zh) |
KR (1) | KR100556340B1 (zh) |
CN (1) | CN100397905C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581674A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及系统 |
CN103581675A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及系统 |
CN107995496A (zh) * | 2011-11-08 | 2018-05-04 | 谷歌技术控股有限责任公司 | 确定用于变换系数的二进制码字的方法 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US7580584B2 (en) * | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US8218624B2 (en) * | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US7801383B2 (en) | 2004-05-15 | 2010-09-21 | Microsoft Corporation | Embedded scalar quantizers with arbitrary dead-zone ratios |
US8422546B2 (en) | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
US7974340B2 (en) | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
US7324026B2 (en) * | 2006-05-19 | 2008-01-29 | Nvidia Corporation | Optimization of decoder memory usage for VLC tables |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
US8498335B2 (en) | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
US8116372B1 (en) * | 2007-10-26 | 2012-02-14 | Xilinx, Inc. | Data structure and method using same for encoding video information |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
EP2297963B1 (en) * | 2008-06-20 | 2011-11-30 | Dolby Laboratories Licensing Corporation | Video compression under multiple distortion constraints |
JP2010278730A (ja) * | 2009-05-28 | 2010-12-09 | Mitsubishi Electric Corp | 動画像符号化装置及び動画像符号化方法 |
JP5741073B2 (ja) * | 2011-03-03 | 2015-07-01 | 富士通株式会社 | 画像符号化装置、画像符号化方法、及び画像符号化プログラム |
KR101323863B1 (ko) | 2011-11-01 | 2013-10-31 | 아주대학교산학협력단 | 움직임 추정 방법 및 움직임 추정 장치 |
WO2013070974A2 (en) * | 2011-11-08 | 2013-05-16 | General Instrument Corporation | Method of determining binary codewords for transform coefficients |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07235877A (ja) * | 1994-02-24 | 1995-09-05 | Canon Inc | 可変長符号パッキング装置 |
JP3274284B2 (ja) * | 1994-08-08 | 2002-04-15 | キヤノン株式会社 | 符号化装置およびその方法 |
US5969764A (en) * | 1997-02-14 | 1999-10-19 | Mitsubishi Electric Information Technology Center America, Inc. | Adaptive video coding method |
KR100335138B1 (ko) * | 1998-12-30 | 2002-11-27 | 엘지정보통신주식회사 | 비디오코더의가변부호화기및이를이용한코딩방법 |
JP3662171B2 (ja) * | 2000-06-05 | 2005-06-22 | 三菱電機株式会社 | 符号化装置及び符号化方法 |
US20030215011A1 (en) * | 2002-05-17 | 2003-11-20 | General Instrument Corporation | Method and apparatus for transcoding compressed video bitstreams |
-
2004
- 2004-01-13 KR KR20040002200A patent/KR100556340B1/ko active IP Right Grant
-
2005
- 2005-01-07 JP JP2005002919A patent/JP4142652B2/ja active Active
- 2005-01-12 US US11/034,270 patent/US7620104B2/en active Active
- 2005-01-13 CN CNB2005100021032A patent/CN100397905C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107995496A (zh) * | 2011-11-08 | 2018-05-04 | 谷歌技术控股有限责任公司 | 确定用于变换系数的二进制码字的方法 |
CN107995496B (zh) * | 2011-11-08 | 2020-07-17 | 谷歌技术控股有限责任公司 | 确定用于变换系数的二进制码字的方法 |
CN103581674A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及系统 |
CN103581675A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR100556340B1 (ko) | 2006-03-03 |
CN100397905C (zh) | 2008-06-25 |
KR20050074012A (ko) | 2005-07-18 |
US7620104B2 (en) | 2009-11-17 |
US20050152451A1 (en) | 2005-07-14 |
JP4142652B2 (ja) | 2008-09-03 |
JP2005204310A (ja) | 2005-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1642282A (zh) | 视频编码系统 | |
CN1134991C (zh) | 数字视频信号块间内插预测编码/解码装置及高效编码方法 | |
US7460725B2 (en) | System and method for effectively encoding and decoding electronic information | |
US8068043B2 (en) | Method and apparatus for video processing in context-adaptive binary arithmetic coding | |
CN1285216C (zh) | 图像编码方法和装置、图像译码方法和装置 | |
CN101031086A (zh) | 视频信息编码方法和视频信息解码方法 | |
CN1791219A (zh) | 用于片上系统的双层总线结构 | |
CN1627824A (zh) | 位流控制的后处理过滤 | |
CN1893649A (zh) | 于视频编码器进行操作帧层级位率控制的方法与装置 | |
CN1633811A (zh) | 图像编码方法、图像译码方法、图像编码装置、图像译码装置、程序、计算机数据信号,以及图像传送系统 | |
CN1272287A (zh) | 在编码数据流中修改数据的方法和设备 | |
CN1636405A (zh) | 用于视频代码转换的方法和设备 | |
CN1825964A (zh) | 片上处理视频数据的方法和系统 | |
CN1922884A (zh) | 视频解码方法 | |
CN1791220A (zh) | 视频解码器、以及相关联的操作方法 | |
CN1751522A (zh) | 利用对选定宏块的跳过移动估计进行的视频编码 | |
CN1217489C (zh) | 快速解码的方法及其装置 | |
CN101056410A (zh) | 视频信号处理装置 | |
CN1529988A (zh) | 图像编码方法、图像译码方法、图像编码装置、图像译码装置、程序、计算机数据信号、以及图像传送系统 | |
CN1399472A (zh) | 多信道图像编码装置及其编码方法 | |
CN1299511C (zh) | 具有选择性运动补偿的可缩放mpeg-2视频译码器 | |
CN1193621C (zh) | 调整计算复杂度的方法、对离散余弦反变换进行近似计算的方法和一种解码器 | |
CN100348053C (zh) | 利用运动图像的电子水印的错误隐蔽方法 | |
CN1406360A (zh) | 图像压缩方法和装置 | |
CN1299510C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |