CN102143361A - 一种视频编码方法和装置 - Google Patents
一种视频编码方法和装置 Download PDFInfo
- Publication number
- CN102143361A CN102143361A CN 201110005106 CN201110005106A CN102143361A CN 102143361 A CN102143361 A CN 102143361A CN 201110005106 CN201110005106 CN 201110005106 CN 201110005106 A CN201110005106 A CN 201110005106A CN 102143361 A CN102143361 A CN 102143361A
- Authority
- CN
- China
- Prior art keywords
- coding
- module
- task
- pipelining
- mode
- 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
Abstract
本发明属于数字视频编解码技术领域,特别涉及一种视频编码方法与装置,该方法包含n个流水级(n为整数,),包含视频编码所需模块:原始图像和参考图像存取、整像素运动估计、亚像素运动估计、帧内预测、运动补偿、变换量化、重建环路、环路滤波、熵编码等。其中在流水级安排上,每个流水级不受固定时间片约束,而只依赖于前后处理的数据关系;其次在编码过程中,每个流水级的时间片根据编码参数、编码内容等进行动态调整;并采用适合灵活流水级管理和模块管理的控制方法。本发明针对现有技术的不足,提供了一种灵活的流水级安排策略和视频编码模块分配方法以及流水级管理与模块控制策略,充分利用了流水级(模块)处理数据之间的相关性,提高了编码的吞吐率,适合高清晰度等实时视频编码的实现。
Description
技术领域
本发明属于数字视频编解码技术领域,特别涉及一种视频编码方法和装置。
背景技术
视频是一系列连续图像按照时间顺序组成的序列,其中每个图像称为帧,常见的有25帧/秒,30帧/秒等。其中每帧图像又可以分为若干条带,每个条带由若干宏块组成,视频编码通常以宏块为编码处理单元,目前视频编解码领域也有以32x32,64x64等大小块为编码处理单元。而通常每个处理单元含有亮度块和色度块,常见的格式如4:2:0,是指色度信息在水平和垂直方向上的像素点个数都是亮度的一半。对于亮度而言,每个处理单元为16x16(32x32,64x64等)像素点的正方形,处理单元又可以进一步划分,如32x32,16x16,16x8,8x16,8x8,8x4,4x8,4x4等。像素是构成图像的最基本单元,通过像素的内插可以得到亚像素点,如1/2像素,1/4像素等。
随着视频图像分辨率的极大提高,原始视频的数据率也越来越高,以高清晰度视频为例(1920x1080,帧率为30,格式为4:2:0),则原始图像率约为750Mbps,这么大的数据率是普通传输媒介无法提供的,如果存储原始视频信息,那么一个500G的硬盘也才只能存储约11分钟的视频信息。视频编码就是通过视频序列中的各种相关性,如时间相关性、空间相关性、统计相关性等,通过合适的编码技术去除冗余信息,对视频信号进行压缩,有效降低传输带宽和存储容量需求。
随着图像分辨率的提高,对编码处理速度的要求也越来越高,对于高清序列(1920x1080,帧率为30,格式为4:2:0),那么每秒需要处理的宏块数为245760个。为了满足实时编码的需求,现有技术中提出了利用多级流水的方案来提高吞吐率,如图1所示为一个典型的四级流水编码方法,其中整像素运动估计模块为第一流水级,亚像素运动估计为第二流水级,帧内预测、运动补偿、重建环路为第三流水级,熵编码和环路滤波是第四流水级。在同一个时间片内,四个流水级同时工作于不同的编码单元,依次为N+3,N+2,N+1,N(其中N+3,N+2,N+1,N等是按照处理单元的时间顺序给予的编号)等,图中T为一个流水级的时间片。对于一个处理单元,则处理过程为依次经过整像素运动估计、亚像素运动估计、帧内预测/运动补偿、变换量化、熵编码成为码流,同时变换量化后的数据进行反变换反量化并重建后存储于编码器中作为参考图像使用。也有一些改进的方案在最前端增加一个预取数据的流水级,消除后续流水级取数据的任务,从而提高吞吐率。
其中帧内预测又称为空域预测,指利用待编码块周围的像素信息来预测当前块的方法。整像素运动估计、亚像素运动估计和运动补偿合并成为帧间预测,又称为时域预测,指利用时间相关性,用已经编码好的图像(参考图像)来预测当前待编码图像的技术。帧内预测和帧间预测成为预测编码技术,视频编码中还包括变换编码(变换量化)和熵编码技术。
对现有技术进行认真分析后,发明人认为现有编码技术中至少存在以下缺点:
1、视频编码中每个流水级时间片相等,并未充分利用数据之间的依赖关系提高处理速度。
2、各流水级任务安排方法固定,流水级片内时间固定。
3、在视频编码装置中,采用集中的系统控制方法,不利于各流水级、各任务的灵活处理。
发明内容
本发明针对现有技术存在的不足提出一种高效的视频编码方法和装置。
本发明所述的一种视频编码方法是采用这样的技术方案实现的:其特征在于:包含m个任务,m为不小于2的整数,每个任务的运行只与该任务前后处理的数据相关联,该任务的启动运行条件是: 该任务需要处理的数据已经准备完成,该任务当前处于待处理状态,该任务输出的存储空间允许。
本发明所述的视频编码方法是采用这样的装置实现的,其特征在于:包含j个模块,j为不小于2的整数,每个模块的启动只与该模块前后处理的数据相关联,该模块的启动运行条件是:该模块需要处理的数据已经准备完成,该模块当前处于待处理状态,该模块输出的存储空间允许。
本发明的有益效果是:针对现有技术的不足,提供了一种灵活的视频编码任务划分和流水级安排方法以及任务与流水级的控制方法,提供了一种视频编码模块划分和流水级装置安排策略以及模块与流水级装置的控制策略,充分利用了编码任务、流水级、编码模块、流水级装置处理数据之间的相关性,提高了编码的吞吐率,适合高分辨率实时视频编码的实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的一种编码方法示意图;
图2是本发明实施例1、2提供的一种视频编码方法的流水级示意图
图3是本发明实施例1、2、8、9、10提供的不同时间片长度流水级安排示意图
图4是本发明实施例1、2、8、9、10提供的不同时间片长度流水级安排示意图
图5是本发明实施例5提供的一种视频编码方法的流水级示意图
图6是本发明实施例5提供的不同时间片长度流水级安排示意图
图7是本发明实施例5提供的不同时间片长度流水级安排示意图
图8是本发明实施例6提供的一种视频编码方法示意图
图9是本发明实施例7提供的一种视频编码方法示意图
图10是本发明实施例8提供的一种视频编码装置示意图
图11是本发明实施例9提供的一种视频编码装置示意图
图12是本发明实施例10提供的一种视频编码装置示意图
图13是本发明实施例11提供的一种视频编码装置示意图
图14是本发明实施例12提供的一种视频编码装置示意图
图15是本发明实施例13提供的一种视频编码装置示意图。
具体实施方式
为使本发明的目的、技术和方案的特点更加清楚,下面结合附图说明和实施实例对本发明做进一步详述。
实施例1:一种视频编码方法,具体如下所述:
一种视频编码方法,包含m个任务,m为不小于2的整数,所述m个任务分布在n个流水级中,n为不小于2的整数,其中m个任务包括数据准备任务、多级模式选择任务、模式判决任务、帧内预测任务、运动补偿任务、变换编码任务与熵编码任务等,n个流水级为五个流水级,具体详述如下,包括(如图2所示):
第一流水级,为数据准备任务,用于读入待编码的原始图像和参考图像,并按照第二流水级的要求存储为特定的格式。该流水级根据数据总线上任务的多少来决定读取数据的多少和启动次数的多少,即每次启动该流水级读取M个处理单元的原始图像和K个处理单元的参考图像(M和K为整数),而每M次启动该流水级则启动一次原始图像读取任务,每K次启动该流水级启动一次参考图像读取任务。定义每次读取一个处理单元的原始图像所需要的时间为T(o),每次读取一个处理单元的参考图像所需要的时间为T(r),则所述第一流水级所需要的时间为M×T(o) + K×T(r);
第二流水级,包含以下任务:第一级模式选择(帧内),根据原始图像和参考图像对帧内编码模式进行筛选,选取帧内编码的一个或几个最佳模式;第一级模式选择(帧间),为整像素级别运动估计模块,用于在一定的搜索范围内,根据参考图像和原始图像找到每个帧间模式(每个模式包含块大小划分、参考图像索引、前后向或双向预测信息等)的最优整像素位置;第二级模式选择,为根据第一级模式选择(帧间)的结果和运动矢量等其他辅助信息,在整像素级别对帧间编码模式进行筛选,选择其中的一种或几种最佳帧间模式,传递给第三流水级;
第三流水级,包含以下任务:第三级模式选择,为根据第二级模式选择的结果,进行进一步的亚像素级别运动搜索,并根据运动矢量等辅助信息选择出帧间编码的最佳模式,传递给第四级模式选择;第四级模式选择,为模式判决,根据第一级模式选择(帧内)给出的帧内编码最佳模式和第三级模式选择给出的帧间编码最佳模式,根据每个模式的编码代价选择出处理单元的最终编码模式;运动补偿任务,包含亮度补偿和色度补偿部分,根据第四级模式选择给出的结果,当为帧间模式时,则根据参考图像和第四级模式选择给出的编码信息进行运动补偿,当为帧内模式时,则不启动运动补偿任务。其中,当第四级模式选择完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成后,下一流水级的启动不再依赖本流水级结果,可以启动变换编码与重建环路任务,而色度运动补偿任务继续进行,如图3所示,这样可以避免本流水级消耗时间过长;当最终编码模式为帧内模式时,则当第四级模式选择完成后既可启动第四流水级,本流水级消耗时间更短;
第四流水级,包含变换编码与重建环路任务,当处理单元(例如16x16宏块或32x32或其他特定大小的图像块)最终编码模式为帧间模式时,则直接进行变换量化,并输出给熵编码任务,同时将量化后的输出进行反变换反量化并重建后输出给环路滤波任务;当最终编码模式为帧内模式时,则进行帧内预测并完成上述的变换编码与重建,输出至第五流水级;
第五流水级,包含以下任务:环路滤波,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;熵编码,根据变换量化后的输出进行熵编码,输出二进制码流。其中,熵编码任务耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面任务启动不依赖于熵编码的结果,熵编码的启动只依赖于量化后数据的允许,当有量化后数据时熵编码即可启动,如图4所示,T(N),T(N+1),T(N+2),……,可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中变换编码和重建环路任务与熵编码任务之间存在一个格式转换任务,用于将量化后的数据按照熵编码需要的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在量化和熵编码任务之间即可。
其中变换编码和重建环路任务与环路滤波任务之间存在一个格式转换任务,用于将重建数据按照环路滤波要求的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在重建后与环路滤波之前即可。
需要特别说明的是,本方法对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级的处理单元可以为不同块大小。
实施例2:一种视频编码方法,具体如下所述:
一种视频编码方法,包含m个任务,m为不小于2的整数,所述m个任务分布在n个流水级中,n为不小于2的整数,其中m个任务包括数据准备任务、多级模式选择任务、模式判决任务、帧内预测任务、运动补偿任务、变换编码任务与熵编码任务等,n个流水级为五个流水级,具体详述如下,包括(如图2所示):
第一流水级,为数据准备任务,用于读入待编码的原始图像和参考图像,并按照第二流水级的要求存储为特定的格式;
第二流水级,包含以下任务:第一级模式选择(帧内),根据原始图像和参考图像对帧内编码模式进行筛选,选取帧内编码的一个或几个最佳模式;第一级模式选择(帧间),为整像素级别运动估计模块,用于在一定的搜索范围和参考帧内,根据参考图像和原始图像找到每个帧间模式(每个模式包含块大小划分、参考图像索引、前后向或双向预测信息等)的最优整像素位置;第二级模式选择,为根据第一级模式选择(帧间)的结果和运动矢量等其他辅助信息,在整像素级别对帧间编码模式进行筛选,选择其中的一种或几种最佳帧间模式,传递给第三流水级。其中所述搜索范围为[-P, +P](P为正整数),所述参考帧数目为Q(Q为正整数),所述第二流水级所需的时间片与P和Q相关;
第三流水级,包含以下任务:第三级模式选择,根据第二级模式选择的结果,进行进一步的亚像素级别运动搜索,并根据运动矢量等辅助信息选择出帧间编码的最佳模式,传递给第四级模式选择;第四级模式选择,根据第一级模式选择(帧内)给出的帧内编码最佳模式和第三级模式选择给出的帧间编码最佳模式,根据每个模式的编码代价选择出处理单元的最终编码模式;运动补偿任务,包含亮度补偿和色度补偿部分,根据第四级模式选择给出的最终编码模式,当为帧间模式时,则根据参考图像和第四级模式选择给出的编码信息进行运动补偿,当为帧内模式时,则不启动运动补偿任务。其中,当第四级模式选择完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成后,下一流水级的启动不再依赖本流水级结果,可以启动变换编码与重建环路任务,而色度运动补偿任务继续进行,如图3所示,这样可以避免本流水级消耗时间过长;当最终编码模式为帧内模式时,则当第四级模式选择完成后既可启动第四流水级。其中所述亚像素搜索是根据第二级模式选择输出的最佳帧间模式个数成比例的,个数越多则需要的时间越长,因此第三流水级所需的时间也越长;
第四流水级,包含变换编码与重建环路任务,当处理单元(例如16x16宏块或32x32或其他特定大小的图像块)最终编码模式为帧间模式时,则直接进行变换量化,并输出给熵编码任务,同时将量化后的输出进行反变换反量化并重建后输出给环路滤波任务;当编码模式为帧内模式时,则进行帧内预测并完成上述的变换编码与重建,输出至第五流水级。当最终编码模式为帧内模式时,该流水级所需要的时间长于当最终编码模式为帧间模式时;
第五流水级,包含以下任务:环路滤波,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;熵编码,根据变换量化后的输出进行熵编码。其中,熵编码任务耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面任务启动不依赖于熵编码的结果,熵编码的启动只依赖于量化后数据的允许,当有量化后数据时熵编码即可启动,如图4所示,T(N),T(N+1),T(N+2),……,可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中变换编码和重建环路任务与熵编码任务之间存在一个格式转换任务,用于将量化后的数据按照熵编码需要的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在量化和熵编码任务之间即可。
其中变换编码和重建环路任务与环路滤波任务之间存在一个格式转换任务,用于将重建数据按照环路滤波要求的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在重建环路后与环路滤波之前即可。
需要特别说明的是,本方法对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级的处理单元可以为不同块大小。
实施例3:一种视频编码方法,具体如下所述:
除了不包含其中环路滤波任务以外,其他均与实施例2相同。
实施例4:一种视频编码方法,具体如下所述:
与实施例2相同的编码方法,还包括码率控制任务。
实施例5:一种视频编码方法,具体如下所述:
一种视频编码方法,包含m个任务,m为不小于2的整数,所述m个任务分布在n个流水级中,n为不小于2的整数,其中m个任务包括数据准备任务、模式选择任务、变换编码任务、环路滤波任务与熵编码任务等,n个流水级为四个流水级,具体详述如下,包括(如图5所示):
第一流水级,包含数据准备任务,用于读取待编码的原始图像和参考图像,并按照第二流水级的要求存储为特定的格式。该流水级根据数据总线上任务的多少来决定读取数据的多少和启动次数的多少,即每次启动该流水级读取M个处理单元的原始图像和K个处理单元的参考图像(M和K为整数),而每M次启动该流水级则启动一次原始图像读取任务,每K次启动该流水级启动一次参考图像读取任务。定义每次读取一个处理单元的原始图像所需要的时间为T(o),每次读取一个处理单元的参考图像所需要的时间为T(r),则所述第一流水级所需要的时间为M×T(o) + K×T(r);
第二流水级,包含以下任务:模式选择,包括对帧内编码模式、帧间编码模式的评估,选择出最佳处理单元的最终编码模式,其中帧间编码模式通过整像素运动搜索、亚像素运动搜索等来选择;运动补偿,包含亮度运动补偿和色度运动补偿,是指根据模式选择结果,当最终编码模式为帧间模式时启动运动补偿任务,当最终编码模式为帧内模式时不启动运动补偿任务。其中,当模式选择完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成任务后,下一流水级的启动不再依赖本流水级结果,可以启动变换编码与重建环路任务,而色度运动补偿继续任务进行,如图6所示,这样可以避免本流水级消耗时间过长;当最终编码模式为帧内模式时,则当模式选择任务完成后即可启动第三流水级;
第三流水级,包含变换编码与重建环路任务,当最终编码模式为帧间模式时,则直接进行变换量化,并输出结果给熵编码任务,同时将量化后的输出进行反变换反量化并重建后输出给环路滤波任务;当最终编码模式为帧内模式时,则进行帧内预测并完成上述的变换编码与重建任务,输出至第四流水级;
第四流水级,包含以下任务:环路滤波,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;熵编码,根据变换量化后的输出进行熵编码输出码流。其中,熵编码任务耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面任务处理不依赖于熵编码的结果,熵编码的启动只依赖于量化后数据的允许,当有量化后的数据时熵编码即可启动,如图7所示,T(N),T(N+1),T(N+2),……,可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中变换编码和重建环路任务与熵编码任务之间存在一个格式转换任务,用于将量化后的数据按照熵编码需要的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在量化和熵编码任务之间即可。
其中变换编码和重建环路任务与环路滤波任务之间存在一个格式转换任务,用于将重建数据按照环路滤波要求的格式进行排列,该格式转换任务可以存在第四流水级,也可以存在第五流水级,只需要在重建环路后与环路滤波之前即可。
需要特别说明的是,本方法对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级的处理单元可以为不同块大小。
实施例6:一种视频编码方法,具体如下所述:
如图8所示,该编码方法包含m个任务,m为不小于2的整数,具体详述如下,包括:
数据准备任务:用于读取待编码的原始图像和参考图像,该任务的启动只依赖于数据总线、储存原始图像和参考图像空间的允许,只要数据总线空闲和前述储存空间不满,就可以启动本任务;
第一级模式选择(帧内)任务:用于选择帧内编码模式中的一个或几个最佳模式,该任务只要数据准备输出的原始图像和参考图像已准备好,而且该任务已处理完前一个处理单元,输出信息存储空间(给第四级模式选择任务读取)不满,本次处理任务即可启动;
第一级模式选择(帧间)任务:用于选择帧间编码模式在整像素级别的最优位置,该任务只要数据准备输出的原始图像和参考图像已准备好,而且该任务已处理完前一个处理单元,输出信息存储空间(给第二级模式选择任务读取)不满,本次处理任务即可启动;
第二级模式选择任务:用于在整像素级别选择一个或几个帧间编码的最佳模式,该任务只要第一级模式选择(帧间)输出的模式信息已经准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给第三级模式选择任务读取)不满,本次处理任务即可启动;
第三级模式选择任务:用于在亚像素级别选择帧间编码的最佳模式,该任务只要第二级模式选择输出的模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给第四级模式选择任务读取)不满,本次处理任务即可启动;
第四级模式选择任务:用于选择处理单元的最终编码模式,该任务只要第一级模式选择(帧内)和第三级模式选择输出的模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给运动补偿任务或帧内预测任务读取)不满,本次处理任务即可启动;
运动补偿任务:当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子任务,这两个子任务只要第四级模式选择输出的最终编码模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给变换编码和重建环路任务读取)不满,本次处理任务即可启动;
帧内预测任务:当处理单元最终编码模式为帧内模式时启动,该任务只要第四级模式选择输出的最终编码模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给变换编码和重建环路任务读取)不满,该任务即可启动;
变换编码和重建环路任务:用于进行变换编码和重建图像任务,该任务只要亮度运动补偿(当处理单元最终编码模式为帧间模式时)和帧内预测(当处理单元最终编码模式为帧内模式时)输出的数据准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给熵编码和环路滤波任务读取)不满,本次处理任务即可启动。当为帧间编码模式时,该任务在完成亮度数据处理后,需要查看色度运动补偿是否完成,如完成则继续处理,否则需要等待色度运动补偿完成后继续;
熵编码任务:用于进行熵编码,输出码流,该任务只要变换编码输出的变换编码数据准备完成,而且该任务已处理完前一个处理单元,本次处理任务即可启动;
环路滤波任务:用于对重建图像进行边界滤波平滑,提供给后续编码图像的参考图像,该任务只要重建环路输出的重建数据准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(放置参考图像的空间)不满,本次处理即可启动。
需要特别说明的是,本方法中可以不包括环路滤波任务。
需要特别说明的是,本方法中还可以包含码率控制任务,适用于非固定量化参数的编码应用。
需要特别说明的是,本方法对帧图像编码和场图像编码均可使用。
实施例7:一种视频编码方法,具体如下所述:
如图9所示,该编码方法包含m个任务,m为不小于2的整数,具体详述如下,包括:
数据准备任务:用于读取待编码的原始图像和参考图像,该任务的启动只依赖于数据总线、储存原始图像和参考图像空间的允许,只要数据总线空闲和前述储存空间不满,就可以启动本任务;
模式选择任务:用于通过帧内预测、帧间预测等方法选择处理单元的最终编码模式,该任务只要数据准备输出的原始图像和参考图像准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给运动补偿任务或帧内预测任务读取)不满,本次处理任务即可启动;
运动补偿任务:当处理单元的最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子任务,这两个子任务只要模式选择输出的编码模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给变换编码和重建环路任务读取)不满,本次处理任务即可启动;
帧内预测任务:当处理单元的最终编码模式为帧内模式时启动,该任务只要模式选择输出的编码模式信息准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给变换编码和重建环路任务读取)不满,该任务即可启动;
变换编码和重建环路任务:用于进行变换编码和重建图像任务,该任务只要亮度运动补偿(当处理单元最终编码模式为帧间模式时)和帧内预测(当处理单元最终编码模式为帧内模式时)输出的数据准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(给熵编码和环路滤波任务读取)不满,本次处理任务即可启动。当最终编码模式为帧间编码模式时,该任务在完成亮度数据处理后,需要查看色度运动补偿是否完成,如完成则继续处理,否则需要等待色度运动补偿完成后继续;
熵编码任务:用于进行熵编码,输出码流,该任务只要变换编码输出的变换编码数据准备完成,而且该任务已处理完前一个处理单元,本次处理任务即可启动;
环路滤波任务:用于对重建图像进行边界滤波平滑,提供给后续编码图像的参考图像,该任务只要重建环路输出的重建数据准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间(放置参考图像的空间)不满,本次处理即可启动。
需要特别说明的是,本方法对帧图像编码和场图像编码均可使用。
实施例8:一种视频编码装置,具体如下所述:
一种视频编码装置,包含j个模块,j为不小于2的整数,所述j个模块分布在k个流水级装置中,k为不小于2的整数,其中j个模块包括数据准备模块、模式选择模块、运功估计模块、运动补偿模块、帧内预测模块、变换编码模块与熵编码模块等,k个流水级装置为五个流水级装置,具体详述如下,包括(如图10所示):
第一流水级装置,包含功能单元101,为数据准备模块,用于读入待编码的原始图像和参考图像,并按照第二流水级装置的要求存储为特定的格式;
第二流水级装置,包含以下功能单元:功能单元102,为帧内模式选择模块,根据原始图像和参考图像对帧内编码模式进行筛选,选取帧内编码的一个或几个最佳模式;功能单元103,为整像素级别运动估计模块,用于在整像素级别对帧间编码模式进行筛选,选择其中的一种或几种最佳帧间模式,传递给第三流水级装置;
第三流水级装置,包含以下功能单元:功能单元104,为亚像素运动估计模块,根据功能单元103输出的结果,进行进一步的亚像素级别运动搜索,并根据运动矢量等辅助信息选择帧间编码的最佳模式,传递给功能单元105;功能单元105,为模式判决模块,根据功能单元102给出的帧内编码最佳模式和功能单元104给出的帧间编码最佳模式,根据每个模式的编码代价选择处理单元的最终编码模式;功能单元106,为运动补偿模块,包含亮度补偿和色度补偿两个子模块,根据功能单元105的结果,当处理单元最终编码模式为帧间模式时,则根据参考图像和功能单元105给出的编码信息进行运动补偿,当处理单元最终编码模式为帧内模式时,则不启动运动补偿任务。其中,当功能单元105完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成后,第四流水级装置的启动不再依赖本流水级装置的结果,可以启动第四级流水级装置,而色度运动补偿任务继续进行,如图3所示,这样可以避免本流水级装置消耗时间过长;当最终编码模式为帧内模式时,则当功能单元105完成后既可启动第四流水级装置;
第四流水级装置,包含以下功能单元:功能单元107,为帧内预测模块,当最终编码模式为帧内模式时,则与功能单元108(为变换编码与重建环路模块)共同完成帧内预测和变换编码与重建环路,输出至第五流水级装置;功能单元108,当最终编码模式为帧间模式时,则不启动功能单元107,直接启动功能单元108完成变换编码与重建环路,输出至第五流水级装置;
第五流水级装置,包含以下功能单元:功能单元109,为环路滤波模块,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;功能单元110,为熵编码模块,根据变换量化后的输出进行熵编码。其中,功能单元110耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面模块启动不依赖于熵编码的结果,熵编码的启动只依赖于功能单元108的输出,如图4所示,T(N),T(N+1),T(N+2),……,可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中功能单元108与功能单元110之间存在一个格式转换模块,用于将量化后的数据按照功能单元110需要的格式进行排列,该格式转换模块可以存在第四流水级,也可以存在第五流水级,只需要在功能单元108之后与功能单元110之前即可。
其中功能单元108和功能单元109之间存在一个格式转换模块,用于将重建数据按照功能单元109要求的格式进行排列,该格式转换模块可以存在第四流水级,也可以存在第五流水级,只需要在功能单元108之后与功能单元109之前即可。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级装置的处理单元可以为不同块大小。
实施例9:一种视频编码装置,具体如下所述:
一种视频编码装置,包含j个模块,j为不小于2的整数,所述j个模块分布在k个流水级装置中,k为不小于2的整数,其中j个模块包括数据准备模块、帧内模式选择模块、运动估计模块、模式判决模块、运动补偿模块、变换编码模块、环路滤波模块与熵编码模块等,k个流水级装置为五个流水级装置,具体详述如下,包括(如图11所示):
编码单元100:为编码器系统存储器,用于存储系统层参数(如视频标准、图像尺寸、GOP结构、目标码率、量化参数、帧/场信息等)、存储各功能单元工作状态(如空闲、启动等)、存储在编码单元之间传递的数据等信息。该单元不存在于某个流水级装置;
第一流水级装置,包含:控制单元101,用于控制功能单元101的工作,包括功能单元101的启动,与功能单元101的数据交互,与编码单元100的数据交互等;功能单元101,为数据准备模块,用于读入待编码的原始图像和参考图像,并按照第二流水级装置的要求存储为特定的格式。该流水级装置根据数据总线上任务的多少来决定读取数据的多少和启动次数的多少,即每次启动该流水级装置读取M个处理单元的原始图像和K个处理单元的参考图像(M和K为整数),而每M次启动该流水级装置则启动一次原始图像读取任务,每K次启动该流水级装置启动一次参考图像读取任务。定义每次读取一个处理单元的原始图像所需要的时间为T(o),每次读取一个处理单元的参考图像所需要的时间为T(r),则所述第一流水级装置所需要的时间为M×T(o) + K×T(r);
第二流水级装置,包含:控制单元102,用于控制功能单元102和功能单元103的工作,包括功能单元102和103的启动,与功能单元102和103的数据交互,与编码单元100的数据交互;功能单元102,为帧内模式选择模块,根据原始图像和参考图像对帧内编码模式进行筛选,选取帧内编码的一个或几个最佳模式;功能单元103,为整像素运动估计模块,用于在整像素级别对帧间编码模式进行筛选,选择其中的一种或几种最佳帧间模式,传递给第三流水级装置;
第三流水级装置,包含:控制单元103,用于控制功能单元104、105和功能单元106的工作,包括功能单元104、105和106的启动,与功能单元104、105和106的数据交互,与编码单元100的数据交互;功能单元104,为亚像素运动估计模块,根据功能单元103输出的结果,进行进一步的亚像素级别运动搜索,并根据运动矢量等辅助信息选择出帧间编码的最佳模式,传递给功能单元105;功能单元105,为模式判决模块,根据功能单元102给出的帧内编码最佳模式和功能单元104给出的帧间编码最佳模式,根据每个模式的编码代价选择处理单元的最终编码模式;功能单元106,为运动补偿模块,包含亮度补偿和色度补偿两个子模块,根据功能单元105输出的结果,当处理单元的最终编码模式为帧间模式时,则根据参考图像和功能单元105给出的编码信息进行运动补偿,当最终编码模式为帧内模式时,则不启动运动补偿模块。其中,当功能单元105完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成后,第四流水级装置的启动可以不再依赖本流水级装置结果,可以启动第四级流水级装置,而色度运动补偿继续进行,如图3所示,这样可以避免本流水级装置消耗时间过长;当最终编码模式为帧内模式时,则当功能单元105完成后既可启动第四流水级装置;
第四流水级装置,包含:控制单元104,用于控制功能单元107和功能单元108的工作,包括功能单元107和108的启动,与功能单元107和108的数据交互,与编码单元100的数据交互;功能单元107,为帧内预测模块,当处理单元的最终编码模式为帧内模式时,则与功能单元108(为变换编码与重建环路模块)共同完成帧内预测和变换编码与重建环路,输出至第五流水级装置;功能单元108,当最终编码模式为帧间模式时,则不启动功能单元107,直接启动功能单元108,完成变换编码与重建环路,输出至第五流水级装置;
第五流水级装置,包含:控制单元105,用于控制功能单元109和功能单元110的工作,包括功能单元109和110的启动,与功能单元109和110的数据交互,与编码单元100的数据交互;功能单元109,为环路滤波模块,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;功能单元110,为熵编码模块,根据变换量化后的输出进行熵编码。其中,功能单元110耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面模块启动不依赖于熵编码的结果,熵编码的启动只依赖于功能单元108的输出,如图4所示,T(N),T(N+1),T(N+2)可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中功能单元108与功能单元110之间存在一个格式转换模块,用于将量化后的数据按照功能单元110需要的格式进行排列,该格式转换模块可以存在于第四流水级装置,也可以存在第五流水级装置,只需要在功能单元108之后与功能单元110之前即可。
其中功能单元108和功能单元109之间存在一个格式转换模块,用于将重建数据按照功能单元109要求的格式进行排列,该格式转换模块可以存在于第四流水级装置,也可以存在第五流水级装置,只需要在功能单元108之后与功能单元109之前即可。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级装置的处理单元可以为不同块大小。
实施例10:一种视频编码装置,具体如下所述:
一种视频编码装置,包含j个模块,j为不小于2的整数,所述j个模块分布在k个流水级装置中,k为不小于2的整数,其中j个模块包括数据准备模块、运动估计模块、模式选择模块、运动补偿模块、帧内预测模块、变换编码模块与熵编码模块等,k个流水级装置为五个流水级装置,具体详述如下,包括(如图12所示):
第一流水级装置,包含:控制单元101,用于控制功能单元101的工作,包括功能单元101的启动,与功能单元101的数据交互,与其他控制单元的数据交互等;功能单元101,为数据准备模块,用于读入待编码的原始图像和参考图像,并按照第二流水级装置的要求存储为特定的格式;
第二流水级装置,包含:控制单元102,用于控制功能单元102和功能单元103的工作,包括功能单元102和103的启动,与功能单元102和103的数据交互,与其他控制单元的数据交互;功能单元102,为帧内模式选择模块,根据原始图像和参考图像对帧内编码模式进行筛选,选取帧内编码的一个或几个最佳模式;功能单元103,为整像素运动估计模块,用于在整像素级别对帧间编码模式进行筛选,选择其中的一种或几种最佳帧间模式,传递给第三流水级装置;
第三流水级装置,包含:控制单元103,用于控制功能单元104、105和功能单元106的工作,包括功能单元104、105和106的启动,与功能单元104、105和106的数据交互,与其他控制单元的数据交互;功能单元104,为亚像素运动估计模块,根据功能单元103输出的结果,进行进一步的亚像素级别运动搜索,并根据运动矢量等辅助信息选择出帧间编码的最佳模式,传递给功能单元105;功能单元105,为模式选择模块,根据功能单元102给出的帧内编码最佳模式和功能单元104给出的帧间编码最佳模式,根据每个模式的编码代价选择出处理单元的最终编码模式;功能单元106,为运动补偿模块,包含亮度补偿和色度补偿两个子模块,根据功能单元105输出的结果,当处理单元的最终编码模式为帧间模式时,则根据参考图像和功能单元105给出的编码信息进行运动补偿,当最终编码模式为帧内模式时,则不启动运动补偿模块。其中,当功能单元105完成后,当最终编码模式为帧间模式时,则当亮度运动补偿完成后,第四流水级装置的启动可以不再依赖本流水级装置结果,可以启动第四级流水级装置,而色度运动补偿继续进行,如图3所示,这样可以避免本流水级装置消耗时间过长;当最终编码模式为帧内模式时,则当功能单元105完成后既可启动第四流水级装置;
第四流水级装置,包含:控制单元104,用于控制功能单元107和功能单元108的工作,包括功能单元107和108的启动,与功能单元107和108的数据交互,与其他控制单元的数据交互;功能单元107,为帧内预测模块,当处理单元的最终编码模式为帧内模式时,则与功能单元108(为变换编码与重建环路模块)共同完成帧内预测和变换编码与重建环路,输出至第五流水级装置;功能单元108,当最终编码模式为帧间模式时,则不启动功能单元107,直接启动功能单元108,完成变换编码与重建环路,输出至第五流水级装置;
第五流水级装置,包含:控制单元105,用于控制功能单元109和功能单元110的工作,包括功能单元109和110的启动,与功能单元109和110的数据交互,与其他控制单元的数据交互;功能单元109,为环路滤波模块,用于对重建图像进行边界滤波平滑,输出到存储器中提供给后续编码图像的参考图像;功能单元110,为熵编码模块,根据变换量化后的输出进行熵编码。其中,功能单元110耗费的时间可长可短,只要在平均意义上达到一定的处理速度即可。由于前面模块启动不依赖于熵编码的结果,熵编码的启动只依赖于功能单元108的输出,如图4所示,T(N),T(N+1),T(N+2),……,可以为不同值,但T(N)的平均值应与流水线的平均吞吐率相当。
其中功能单元108与功能单元110之间存在一个格式转换模块,用于将量化后的数据按照功能单元110需要的格式进行排列,该格式转换模块可以存在第四流水级装置,也可以存在第五流水级装置,只需要在功能单元108之后与功能单元110之前即可。
其中功能单元108和功能单元109之间存在一个格式转换模块,用于将重建数据按照功能单元109要求的格式进行排列,该格式转换模块可以存在第四流水级装置,也可以存在第五流水级装置,只需要在功能单元108之后与功能单元109之前即可。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
需要特别说明的是,各流水级装置的处理单元可以为不同块大小。
实施例11:一种视频编码装置,具体如下所述:
如图13所示,该编码装置包含j个模块,j为不小于2的整数,具体详述如下,包括:
功能单元101:为数据准备模块,用于读取待编码的原始图像和参考图像,该模块的启动只依赖于数据总线、储存原始图像和参考图像空间的空满,只要数据总线空闲和前述储存空间不满,就可以启动本模块;
功能单元102:为帧内模式选择模块,用于选择帧内编码模式中的一个或几个最佳模式,该模块只要功能单元101输出的原始图像和参考图像已准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元105读取)不满,该模块即可启动;
功能单元103:为整像素运动估计模块,用于在整像素级别选择一个或几个最佳的帧间编码模式,该模块只要功能单元101输出的原始图像和参考图像已准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元104读取)不满,该模块即可启动;
功能单元104:为亚像素运动估计模块,用于选择最佳的帧间编码模式,该模块只要功能单元103输出的整像素级别编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元105读取)不满,该模块即可启动;
功能单元105:为模式选择模块,用于选择处理单元最终的编码模式,该模块只要功能单元102和104输出的帧内和帧间编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元106或功能单元107读取)不满,该模块即可启动;
功能单元106:为帧内预测模块,当处理单元最终编码模式为帧内模式时启动,该模块只要功能单元105输出的最终编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元108读取)不满,该模块即可启动;
功能单元107:为运动补偿模块,当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子模块,这两个子模块只要功能单元105输出的最终编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元108读取)不满,该模块即可启动;
功能单元108:为变换编码和重建环路模块,用于进行变换编码和重建参考图像,该模块只要功能单元107处理完亮度运动补偿并将相应的输出数据准备完成(当处理单元最终编码模式为帧间模式时)或功能单元106输出的帧内预测数据准备完成(当处理单元最终编码模式为帧内模式时),而且该模块已处理完前一个处理单元,输出信息存储空间(给功能单元109和110读取)不满,该模块即可启动。当为帧间编码模式时,该模块在完成亮度数据处理后,需要查看功能单元107是否完成色度运动补偿,如完成则继续处理,否则需要等待色度运动补偿完成后继续;
功能单元109:为环路滤波模块,用于对重建图像进行边界滤波平滑,提供给后续编码图像的参考图像,该模块只要功能单元108输出的重建图像数据准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(放置参考图像的空间)不满,该模块即可启动;
功能单元110:为熵编码模块,用于进行熵编码,输出码流,该模块只要功能单元108输出的变换编码数据准备完成,而且该模块已处理完前一个处理单元,该模块即可启动。
需要特别说明的是,本装置中可以不包括功能单元109。
需要特别说明的是,本装置中还可以包含码率控制模块,适用于非固定量化参数的编码应用。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
实施例12:一种视频编码装置,具体如下所述:
如图14所示,该编码装置包含j个模块,j为不小于2的整数,具体详述如下,包括:
编码单元100:为编码器系统存储器,用于存储系统层参数(如视频标准、图像尺寸、GOP结构、目标码率、量化参数、帧/场信息等)、存储各功能单元工作状态(如空闲、启动等)、存储在编码单元之间传递的数据等信息;
编码单元101:为数据准备模块,其中包含以下单元:控制单元101和功能单元101。控制单元101,用于控制功能单元101的工作,包括功能单元101的启动,与功能单元101的数据交互,与编码单元100的数据交互等。功能单元101,用于读取待编码的原始图像和参考图像,根据控制单元101的管理进行工作,该单元的启动只依赖于数据总线、储存原始图像和参考图像的空间允许,只要数据总线空闲和前述储存空间不满,就可以启动本功能单元;
编码单元102:为帧内模式选择模块,其中包含以下单元:控制单元102和功能单元102。控制单元102,用于控制功能单元102的工作,包括功能单元102的启动,与功能单元102的数据交互,与编码单元100的数据交互等。功能单元102,用于选择帧内编码模式中的一个或几个最佳模式,根据控制单元102的管理进行工作,该单元只要编码单元101输出的原始图像和参考图像已准备好,而且该编码单元已处理完前一个处理单元,输出信息存储空间(给编码单元105读取)不满,该功能单元即可启动;
编码单元103:为整像素运动估计模块,其中包含以下单元:控制单元103和功能单元103。控制单元103,用于控制功能单元103的工作,包括功能单元103的启动,与功能单元103的数据交互,与编码单元100的数据交互等。功能单元103,用于在整像素级别选择一个或几个最佳的帧间编码模式,根据控制单元103的管理进行工作,该单元只要编码单元101输出的原始图像和参考图像已准备好,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元104读取)不满,该单元即可启动;
编码单元104:为亚像素运动估计模块,其中包含以下单元:控制单元104和功能单元104。控制单元104,用于控制功能单元104的工作,包括功能单元104的启动,与功能单元104的数据交互,与编码单元100的数据交互等。功能单元104,用于选择最佳的帧间编码模式,根据控制单元104的管理进行工作,该单元只要编码单元103输出的整像素级别编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元105读取)不满,该单元即可启动;
编码单元105:为模式判决模块,其中包含以下单元:控制单元105和功能单元105。控制单元105,用于控制功能单元105的工作,包括功能单元105的启动,与功能单元105的数据交互,与编码单元100的数据交互等。功能单元105,用于选择处理单元的最终编码模式,根据控制单元105的管理进行工作,该模块只要编码单元102和104输出的编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元106或编码单元107读取)不满,该单元即可启动;
编码单元106:为帧内预测模块,其中包含以下单元:控制单元106和功能单元106。控制单元106,用于控制功能单元106的工作,包括功能单元106的启动,与功能单元106的数据交互,与编码单元100的数据交互等。功能单元106,根据控制单元106的管理进行工作,当处理单元最终编码模式为帧内模式时启动,该模块只要编码单元105输出的最终编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给编码单元108读取)不满,该模块即可启动;
编码单元107:为运动补偿模块,其中包含以下单元:控制单元107和功能单元107。控制单元107,用于控制功能单元107的工作,包括功能单元107的启动,与功能单元107的数据交互,与编码单元100的数据交互等。功能单元107,根据控制单元107的管理进行工作,当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子单元,这两个子单元只要编码单元105输出的最终编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元108读取)不满,该单元即可启动;
编码单元108:为变换编码和重建环路模块,其中包含以下单元:控制单元108和功能单元108。控制单元108,用于控制功能单元108的工作,包括功能单元108的启动,与功能单元108的数据交互,与编码单元100的数据交互等。功能单元108,用于进行变换编码和重建环路,根据控制单元108的管理进行工作,该单元只要编码单元107处理完亮度运动补偿并将相应的输出数据准备完成(当处理单元最终编码模式为帧间模式时)或编码单元106输出的帧内预测数据准备完成(当处理单元最终编码模式为帧内模式时),而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元109和110读取)不满,该单元即可启动。当最终编码模式为帧间模式时,该单元在完成亮度数据处理后,需要查看编码单元107是否完成色度运动补偿,如完成则继续处理,否则需要等待色度运动补偿完成后继续;
编码单元109:为环路滤波模块,其中包含以下单元:控制单元109和功能单元109。控制单元109,用于控制功能单元109的工作,包括功能单元109的启动,与功能单元109的数据交互,与编码单元100的数据交互等。功能单元109,用于对重建图像进行边界滤波平滑,提供给后续编码图像的参考图像,根据控制单元109的管理进行工作,该单元只要编码单元108输出的重建环路数据准备完成(编码单元108输出的空间不空),而且该单元已处理完前一个处理单元,输出信息存储空间(放置参考图像的空间)不满,该单元即可启动;
编码单元110:为熵编码模块,其中包含以下单元:控制单元110和功能单元110。控制单元110,用于控制功能单元110的工作,包括功能单元110的启动,与功能单元110的数据交互,与编码单元100的数据交互等。功能单元110,用于进行熵编码,输出码流,根据控制单元110的管理进行工作,该单元只要编码单元108输出的变换编码数据准备完成(功能单元108输出的空间不空),而且该单元已处理完前一个处理单元,该单元即可启动。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
实施例13:一种视频编码装置,具体如下所述:
如图15所示,该编码装置包含j个模块,j为不小于2的整数,具体详述如下,包括:
编码单元101:为数据准备模块,其中包含以下单元:控制单元101和功能单元101。控制单元101,用于控制功能单元101的工作,包括功能单元101的启动,与功能单元101的数据交互,与其他编码单元的数据交互等。功能单元101,用于读取待编码的原始图像和参考图像,根据控制单元101的管理进行工作,该单元的启动只依赖于数据总线、储存原始图像和参考图像的空间允许,只要数据总线空闲和前述储存空间不满,就可以启动本功能单元;
编码单元102:为帧内模式选择模块,其中包含以下单元:控制单元102和功能单元102。控制单元102,用于控制功能单元102的工作,包括功能单元102的启动,与功能单元102的数据交互,与其他编码单元的数据交互等。功能单元102,用于选择帧内编码模式中的一个或几个最佳模式,根据控制单元102的管理进行工作,该单元只编码单元101输出的原始图像和参考图像已准备完成,而且该编码单元已处理完前一个处理单元,输出信息存储空间(给编码单元105读取)不满,该功能单元即可启动;
编码单元103:为整像素运动估计模块,其中包含以下单元:控制单元103和功能单元103。控制单元103,用于控制功能单元103的工作,包括功能单元103的启动,与功能单元103的数据交互,与其他编码单元的数据交互等。功能单元103,用于在整像素级别选择一个或几个最佳的帧间编码模式,根据控制单元103的管理进行工作,该单元只要编码单元101输出的原始图像和参考图像已准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元104读取)不满,该单元即可启动;
编码单元104:为亚像素运动估计模块,其中包含以下单元:控制单元104和功能单元104。控制单元104,用于控制功能单元104的工作,包括功能单元104的启动,与功能单元104的数据交互,与其他编码单元的数据交互等。功能单元104,用于选择最佳的帧间编码模式,根据控制单元104的管理进行工作,该单元只要编码单元103输出的整像素级别编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元105读取)不满,该单元即可启动;
编码单元105:为模式选择模块,其中包含以下单元:控制单元105和功能单元105。控制单元105,用于控制功能单元105的工作,包括功能单元105的启动,与功能单元105的数据交互,与其他编码单元的数据交互等。功能单元105,用于选择处理单元最终的编码模式,根据控制单元105的管理进行工作,该模块只要编码单元102和104输出的编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元106或编码单元107读取)不满,该单元即可启动;
编码单元106:为帧内预测模块,其中包含以下单元:控制单元106和功能单元106。控制单元106,用于控制功能单元106的工作,包括功能单元106的启动,与功能单元106的数据交互,与其他编码单元的数据交互等。功能单元106,根据控制单元106的管理进行工作,当处理单元最终编码模式为帧内模式时启动,该模块只要编码单元105输出的最终编码模式信息准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间(给编码单元108读取)不满,该模块即可启动;
编码单元107:为运动补偿模块,其中包含以下单元:控制单元107和功能单元107。控制单元107,用于控制功能单元107的工作,包括功能单元107的启动,与功能单元107的数据交互,与其他编码单元的数据交互等。功能单元107,根据控制单元107的管理进行工作,当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子单元,这两个子单元只要编码单元105输出的最终编码模式信息准备完成,而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元108读取)不满,该单元即可启动;
编码单元108:为变换编码和重建环路模块,其中包含以下单元:控制单元108和功能单元108。控制单元108,用于控制功能单元108的工作,包括功能单元108的启动,与功能单元108的数据交互,与其他编码单元的数据交互等。功能单元108,用于进行变换编码和重建参考图像,根据控制单元108的管理进行工作,该单元只要编码单元107处理完亮度运动补偿并将相应的输出数据准备完成(当处理单元最终编码模式为帧间模式时)或编码单元106输出的帧内预测数据准备完成(当处理单元最终编码模式为帧内模式时),而且该单元已处理完前一个处理单元,输出信息存储空间(给编码单元109和110读取)不满,该单元即可启动。当为帧间编码模式时,该单元在完成亮度数据处理后,需要查看编码单元107是否完成色度运动补偿,如完成则继续处理,否则需要等待色度运动补偿完成后继续;
编码单元109:为环路滤波模块,其中包含以下单元:控制单元109和功能单元109。控制单元109,用于控制功能单元109的工作,包括功能单元109的启动,与功能单元109的数据交互,与其他编码单元的数据交互等。功能单元109,用于对重建图像进行边界滤波平滑,提供给后续编码图像的参考图像,根据控制单元109的管理进行工作,该单元只要编码单元108输出的重建图像数据准备完成(编码单元108输出的空间不空),而且该单元已处理完前一个处理单元,输出信息存储空间(放置参考图像的空间)不满,该单元即可启动;
编码单元110:为熵编码模块,其中包含以下单元:控制单元110和功能单元110。控制单元110,用于控制功能单元110的工作,包括功能单元110的启动,与功能单元110的数据交互,与其他编码单元的数据交互等。功能单元110,用于进行熵编码,输出码流,根据控制单元110的管理进行工作,该单元只要编码单元108输出的变换编码数据准备完成(功能单元108输出的空间不空),而且该单元已处理完前一个处理单元,该单元即可启动。
需要特别说明的是,本装置对帧图像编码和场图像编码均可使用。
实施例14:一种视频编码装置,具体如下所述:
除不包含功能单元109以及功能单元108和109之间的格式转换单元以外,其他均与实施例8相同。
实施例15:一种视频编码装置,具体如下所述:
除不包含编码单元109以外,其他均与实施例13相同。
本说明书中的所有实施例可以基于多种平台实现,例如计算机平台、DSP平台、FPGA设计平台、集成电路设计等。
需要特别说明的是,凡用于视频解码领域的技术符合本发明特点和原则的,均应在本发明保护范围之内。
以上所述实施例仅为本发明的部分实施实例,并不用以限制本发明,凡符合本发明特点的方案和技术等,均应在本发明的保护范围之内。
Claims (9)
2.如权利要求1所述的视频编码方法,其特征在于:所述m个任务分布在n个流水级中,n
为不小于2的整数,其中每个流水级包含的任务数是可变的,每个任务能工作于不同的流水级。
3.如权利要求2所述的视频编码方法,所述的流水级每次执行所需要的时间片是不固定的,不同流水级需要的时间片也不相同。
4.如权利要求2所述的视频编码方法,其特征在于,所述n个流水级为五个流水级,包括:
第一流水级,读入待编码的原始图像和相应的参考图像,并按照第二流水级的要求存储为特定的格式;
第二流水级,包含整像素运动估计和帧内模式选择两个任务,读取第一流水级输出的原始图像和相应的参考图像,根据一定的规则对帧内编码和帧间编码的各种模式进行筛选,并将结果传递给第三流水级;
第三流水级,包含亚像素运动估计、模式判决、运动补偿三个任务,读取第二流水级输出的编码模式信息,通过亚像素运动估计得到帧间编码最佳模式,通过模式判决得到处理单元的最终编码模式,当最终编码模式为帧间模式时,则启动运动补偿任务;当最终编码模式为帧内模式时,则不启动运动补偿任务;
第四流水级,包含变换编码任务;当最终编码模式为帧间模式时,则对第三流水级运动补偿的输出直接进行变换量化,并输出给熵编码任务,在帧间模式下,前一流水级亮度运动补偿完成后,所述变换编码任务即可启动,与第三流水级的色度运动补偿同时进行;当最终编码模式为帧内模式时,则根据帧内编码最佳模式进行帧内预测并完成上述的变换编码,输出至第五流水级;
第五流水级,包含熵编码任务,根据变换量化后的输出进行熵编码,熵编码的启动只依赖于量化后数据的给出,当量化后数据允许时熵编码即可启动。
5.如权利要求1所述的一种视频编码方法,其特征在于,所述m个任务包括:
数据准备任务:用于读取待编码的原始图像和参考图像,该任务的启动只依赖于数据总线、储存原始图像和参考图像空间的空满,只要数据总线空闲和前述储存空间允许,就可以启动本任务;
模式选择任务:用于通过帧内预测、帧间预测等方法选择处理单元的最终编码模式,该任务只要数据准备输出的原始图像和参考图像等数据准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间允许,本次处理任务即可启动;
运动补偿任务:当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子任务,这两个子任务只要模式选择输出的数据已经准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间允许,本次处理任务即可启动;
帧内预测任务:当处理单元最终编码模式为帧内模式时启动,该任务只要模式选择输出的数据已经准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间允许,该任务即可启动;
变换编码任务:用于进行变换编码,该任务只要亮度运动补偿任务和帧内预测输出的数据已经准备完成,而且该任务已处理完前一个处理单元,输出信息存储空间允许,本次处理任务即可启动;
熵编码任务:用于进行熵编码,输出码流,该任务只要变换编码输出的数据准备完成,而且该任务已处理完前一个处理单元,本次处理任务即可启动。
7.如权利要求6所述的视频编码装置,其特征在于:所述j个模块分布在k个流水级装置中,k为不小于2的整数,其中每个流水级装置包含的模块数量是可变的,每个模块能工作于不同的流水级装置中。
8.如权利要求7所述的视频编码装置,其特征在于,所述k个流水级装置为五个流水级装置,包括:
第一流水级装置,用于读入待编码的原始图像和参考图像,并按照第二流水级的要求存储为特定的格式;
第二流水级装置,包含整像素运动估计和帧内模式选择两个模块,读取第一流水级输出的原始图像和参考图像,根据一定的规则对帧内编码和帧间编码的各种模式进行筛选,并将结果传递给第三流水级;
第三流水级装置,包含亚像素运动估计、模式判决、运动补偿三个模块,读取第二流水级输出的编码模式信息,通过亚像素运动估计得到帧间编码最佳模式,通过模式判决得到处理单元的最终编码模式,当最终编码模式为帧间模式时,则启动运动补偿模块;当最终编码模式为帧内模式时,则不启动运动补偿模块;
第四流水级装置,包含变换编码模块,当最终编码模式为帧间模式时,则直接进行变换量化,并输出给熵编码模块,在帧间模式下,前一流水级亮度运动补偿完成后,该模块即可启动,与上一流水级的色度运动补偿同时进行;当最终编码模式为帧内模式时,则根据帧内编码最佳模式进行帧内预测并完成上述的变换编码,输出至第五流水级;
第五流水级装置,包含熵编码模块,根据变换量化后的输出进行熵编码,熵编码的启动只依赖于量化后数据的给出,当量化后数据允许时熵编码即可启动。
9.如权利要求6所述的一种视频编码装置,其特征在于,所述j个模块包括:
数据准备模块:用于读取待编码的原始图像和参考图像,该模块的启动只依赖于数据总线的状态、储存原始图像和参考图像空间的空满,只要数据总线空闲和前述储存空间允许,就可以启动本模块;
模式选择模块:用于通过帧内预测、帧间预测等方法选择处理单元的最终编码模式,该模块只要数据准备模块输出的数据准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间允许,该模块即可启动;
运动补偿模块:当处理单元最终编码模式为帧间模式时启动,包含亮度运动补偿和色度运动补偿两个子模块,这两个子模块只要模式选择模块的输出数据准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间允许,该模块即可启动;
帧内预测模块:当处理单元最终编码模式为帧内模式时启动,该模块只要模式选择模块的输出数据准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间允许,该模块即可启动;
变换编码模块:用于进行变换编码,该模块只要亮度运动补偿和帧内预测的输出数据准备完成,而且该模块已处理完前一个处理单元,输出信息存储空间允许,该模块即可启动;
熵编码模块:用于进行熵编码,输出码流,该模块只要变换编码模块的输出数据准备完成,而且该模块已处理完前一个处理单元,该模块即可启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110005106 CN102143361B (zh) | 2011-01-12 | 2011-01-12 | 一种视频编码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110005106 CN102143361B (zh) | 2011-01-12 | 2011-01-12 | 一种视频编码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102143361A true CN102143361A (zh) | 2011-08-03 |
CN102143361B CN102143361B (zh) | 2013-05-01 |
Family
ID=44410549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110005106 Active CN102143361B (zh) | 2011-01-12 | 2011-01-12 | 一种视频编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102143361B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402086A (zh) * | 2013-07-22 | 2013-11-20 | 华为技术有限公司 | 一种用于视频编码系统的性能控制方法及编码器 |
CN108337507A (zh) * | 2017-01-19 | 2018-07-27 | 晨星半导体股份有限公司 | 用于高效率视频编码装置的排程方法 |
CN110971896A (zh) * | 2018-09-28 | 2020-04-07 | 福州瑞芯微电子股份有限公司 | 一种h.265编码方法和装置 |
CN111131779A (zh) * | 2019-12-26 | 2020-05-08 | 武汉宏数信息技术有限责任公司 | 一种工程勘察设计中基于窄带高清视频的专家远程诊断方法 |
CN112911291A (zh) * | 2021-01-29 | 2021-06-04 | 北京博雅慧视智能技术研究院有限公司 | 一种针对avs2硬件编码器实时流水架构电路 |
WO2022028283A1 (zh) * | 2020-08-03 | 2022-02-10 | 阿里巴巴集团控股有限公司 | 图像帧编码方法、对象搜索方法、计算机设备、存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI617181B (zh) * | 2017-01-04 | 2018-03-01 | 晨星半導體股份有限公司 | 用於高效率視訊編碼裝置之排程方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529512A (zh) * | 2003-10-17 | 2004-09-15 | 中国科学院计算技术研究所 | 基于流水线的帧内预测模式块编码加速方法 |
CN1658673A (zh) * | 2005-03-23 | 2005-08-24 | 南京大学 | 视频压缩编解码方法 |
US20060126740A1 (en) * | 2004-12-10 | 2006-06-15 | Lin Teng C | Shared pipeline architecture for motion vector prediction and residual decoding |
CN101394560A (zh) * | 2008-06-30 | 2009-03-25 | 浙江大学 | 一种用于视频编码的混合流水线装置 |
CN101707716A (zh) * | 2009-11-19 | 2010-05-12 | 清华大学 | 视频编码器和编码方法 |
-
2011
- 2011-01-12 CN CN 201110005106 patent/CN102143361B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529512A (zh) * | 2003-10-17 | 2004-09-15 | 中国科学院计算技术研究所 | 基于流水线的帧内预测模式块编码加速方法 |
US20060126740A1 (en) * | 2004-12-10 | 2006-06-15 | Lin Teng C | Shared pipeline architecture for motion vector prediction and residual decoding |
CN1658673A (zh) * | 2005-03-23 | 2005-08-24 | 南京大学 | 视频压缩编解码方法 |
CN101394560A (zh) * | 2008-06-30 | 2009-03-25 | 浙江大学 | 一种用于视频编码的混合流水线装置 |
CN101707716A (zh) * | 2009-11-19 | 2010-05-12 | 清华大学 | 视频编码器和编码方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402086A (zh) * | 2013-07-22 | 2013-11-20 | 华为技术有限公司 | 一种用于视频编码系统的性能控制方法及编码器 |
CN103402086B (zh) * | 2013-07-22 | 2017-02-15 | 华为技术有限公司 | 一种用于视频编码系统的性能控制方法及编码器 |
CN108337507A (zh) * | 2017-01-19 | 2018-07-27 | 晨星半导体股份有限公司 | 用于高效率视频编码装置的排程方法 |
CN110971896A (zh) * | 2018-09-28 | 2020-04-07 | 福州瑞芯微电子股份有限公司 | 一种h.265编码方法和装置 |
CN110971896B (zh) * | 2018-09-28 | 2022-02-18 | 瑞芯微电子股份有限公司 | 一种h.265编码方法和装置 |
CN111131779A (zh) * | 2019-12-26 | 2020-05-08 | 武汉宏数信息技术有限责任公司 | 一种工程勘察设计中基于窄带高清视频的专家远程诊断方法 |
WO2022028283A1 (zh) * | 2020-08-03 | 2022-02-10 | 阿里巴巴集团控股有限公司 | 图像帧编码方法、对象搜索方法、计算机设备、存储介质 |
CN112911291A (zh) * | 2021-01-29 | 2021-06-04 | 北京博雅慧视智能技术研究院有限公司 | 一种针对avs2硬件编码器实时流水架构电路 |
Also Published As
Publication number | Publication date |
---|---|
CN102143361B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102143361B (zh) | 一种视频编码方法和装置 | |
CN104918056B (zh) | 对帧内预测模式进行解码的方法 | |
CN104935932B (zh) | 图像解码设备 | |
CN104170379B (zh) | 用于图像解码的方法和装置 | |
CN105491377B (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
CN101707716B (zh) | 视频编码器和编码方法 | |
CN102647593B (zh) | 一种avs帧内模式决策方法和装置 | |
CN102932642A (zh) | 一种帧间编码快速模式选择方法 | |
CN103491369A (zh) | 一种帧间预测编码方法和编码器 | |
CN102740071A (zh) | 可分级视频编解码器的编码设备及其方法 | |
CN102484699A (zh) | 对图像进行编码和解码的方法、用于编码和解码的对应装置以及计算机程序 | |
CN101115207B (zh) | 基于预测点间相关性的帧内预测实现的方法及装置 | |
CN1589028B (zh) | 基于像素流水的帧内预测装置及预测方法 | |
CN104702959B (zh) | 一种视频编码的帧内预测方法及系统 | |
CN102742270B (zh) | 用于子像素插值的改进的方法和设备 | |
CN101715124A (zh) | 单路输入多路输出的视频编码系统及视频编码方法 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN101389031A (zh) | 一种对变换系数的处理方法及装置 | |
CN102595137B (zh) | 基于图像像素块行/列流水线的快速模式判决装置和方法 | |
CN101841722A (zh) | 滤波边界强度的检测装置及其检测方法 | |
CN100469146C (zh) | 视频图像运动补偿装置 | |
CN102420989B (zh) | 帧内预测方法和装置 | |
CN110139099A (zh) | 基于预编码和编码satd值加权的帧间预测模式选择方法 | |
CN101977317B (zh) | 帧内预测方法及装置 | |
CN106060565B (zh) | 一种应用于视频编解码的Planar预测电路及Planar预测方法 |
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 |