CN101707716B - 视频编码器和编码方法 - Google Patents
视频编码器和编码方法 Download PDFInfo
- Publication number
- CN101707716B CN101707716B CN 200910237972 CN200910237972A CN101707716B CN 101707716 B CN101707716 B CN 101707716B CN 200910237972 CN200910237972 CN 200910237972 CN 200910237972 A CN200910237972 A CN 200910237972A CN 101707716 B CN101707716 B CN 101707716B
- Authority
- CN
- China
- Prior art keywords
- reconstructed image
- module
- memory module
- encoded
- macroblock
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频编码器和编码方法,属于视频编码领域。该编码器分为五级流水,包括:数据加载模块、第一存储模块、整像素运动估计模块、第二存储模块、亚像素运动估计模块、第三存储模块、综合处理模块、第四存储模块以及环路滤波模块和熵编码模块。还提出了一种视频编码方法。本发明的五级流水模块之间利用双端口存储器模块进行数据交互,简化了数据交互的控制逻辑,提高了流水级之间数据传输的速度。该视频编码器的级间数据交互均在宏块级进行,数据结构一致,简化了控制流程,有效的提高吞吐率以及降低延迟,可以对高清视频源进行实时的编码。
Description
技术领域
本发明涉及视频编码领域,特别涉及一种视频编码器和编码方法。
背景技术
视频是指由一系列时间上相关的图像组成的序列。其中的每幅图像称为一个帧,每个帧又可以划分为若干个块,通常块为正方形或矩形,视频编码以块为基本单位进行编码,视频编码中常用的块有16x16,8x16,16x8,8x8,4x4等,这些块的大小都是以像素为单位,像素则是指构成图像的点,是构成图像的最小单元,亚像素是通过整像素进行插值滤波产生的,如1/2或1/4像素等。视频编码块按照所承载的信息类别又可分为亮度块和色度块,在主流的视频编码标准中通常把按照一定比例组成的亮度块和色度块的集合称为一个宏块。如图1(a)所示,对于4:2:0格式的图像,每个宏块的大小为16x16,可以包括1个16x16的亮度块,以及2个8x8的色度块。
视频编码是指在给定的码率带宽下,在保持一定的视频图像质量的前提下,有效的减少表达视频信息所需数据量的技术,它以视频信号的高度相关性和人眼的视觉特性为出发点,通过恰当的编码方式,来消除各种相关性和人眼特性所产生的冗余。
随着人们对视频的需求越来越大,对编码速度的要求也就越来越高。为了满足实时编码视频的需求,现有技术中的视频编码器采用了宏块级的VLSI(VeryLarge Scale intergrated Circuit)体系结构。参见图1(b),该VLSI体系结构为四级流水,包括了五个主要功能模块,包括整像素运动估计模块,亚像素运动估计模块,帧内预测、变换和量化模块,熵编码模块以及环路去块效应滤波模块。输入图像所承载的原始视频数据,经过整像素运动估计、亚像素运动估计的处理以及帧内预测编码的各模式处理,由特定的模式选择算法决定预测编码的模式,并将待编码数据与重建图像参考数据按照某种算法得到的残差进行变换编码以及量化,最后进行熵编码,输出码流。同时,还需要对量化后的数据进行反量化和反变换以得到重建数据作为下一段待编码数据的参考图像数据。其中环路滤波一般是可选的增强技术,由于变换以及量化等都是以块为单位进行,因此重建的图像在块的边界可能会出现不连续,形成重建图象的明显缺陷,特别是当量化粗糙的时候尤为明显,这种现象称为块效应。为了去除块效应,部分视频编码算法中可以对重建图像以整帧为单位进行环路滤波,以获得更好的参考帧质量,供帧间预测参考。
其中整像素运动估计模块作为第一级流水级、亚像素运动估计模块作为第二级流水级,帧内预测、变换/量化模块作为第三级流水级,熵编码模块和环路去块效应滤波模块可以并行执行,作为第四级流水级。
在对现有技术进行分析后,发明人发现现有技术至少具有如下缺点:
现有技术中流水级之间的数据交互,主要利用总线或共享内存,但不论共享内存还是总线,都需要通过时分复用的方式来被多个模块访问,这样就可能使得一些模块在需要访问共享内存或者总线时需要等待其他模块释放共享内存或总线的使用权,使得处理效率严重降低,影响了整个编码器运行的流畅程度,影响了数据处理的速度。
数据通路上缺少独立的数据加载模块流水级,增加了第一级流水级的负担,因此,较为明显的影响了流水线的吞吐率,减慢了数据处理的速度。
发明内容
本发明实施例提供了一种视频编码器和编码方法。所述技术方案如下:
一种视频编码器,包括:
数据加载模块,用于读入待编码宏块和重建图像参考数据,将读入的待编码宏块和重建图像参考数据发送给第一存储模块;
所述第一存储模块,用于接收并存储所述待编码宏块和所述重建图像参考数据;
整像素运动估计模块,用于读取所述第一存储模块中的所述待编码宏块和所述重建图像参考数据,根据所述待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将所述整像素运动估计信息,所述待编码宏块和所述重建图像参考数据发送给第二存储模块;
所述第二存储模块,用于接收并存储所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
亚像素运动估计模块,用于读取所述第二存储模块的所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,根据所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据发送给第三存储模块;
所述第三存储模块,用于接收并存储所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
综合处理模块,用于读取所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行帧内预测,结合所述亚像素运动估计信息,得到预测残差和表征编码方式的辅助信息,对所述预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和所述表征编码方式的辅助信息发送给第四存储模块;
所述第四存储模块,用于接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息;
熵编码模块,用于读取所述第四存储模块中的所述转换后的残差数据和所述表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
所述综合处理模块还包括:
反变换量化单元,用于将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。
所述编码器还包括:
环路滤波模块,用于读取所述重建图像,对所述重建图像以整帧为单位进行环路滤波。
所述综合处理模块还包括:
第一存储单元,用于将所述重建图像存入外部存储器;
第二存储单元,用于将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中;
由所述熵编码模块通过所述第四存储模块的端口读出,并将所述重建图像存入所述外部存储器;
第三存储单元,用于将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由所述环路滤波模块通过所述第四存储模块的端口读出,并对所述重建图像进行环路滤波后,存入所述外部存储器。所述编码器中的各个模块之间还传递包括但不限于编码端预设参数的数据。
一种视频编码方法,包括:
数据加载模块读入待编码宏块和重建图像参考数据;
所述数据加载模块将读入的待编码宏块和重建图像参考数据发送给第一存储模块;
所述第一存储模块接收并存储所述待编码宏块和所述重建图像参考数据;
整像素运动估计模块读取所述第一存储模块中的所述待编码宏块和所述重建图像参考数据,根据所述待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将所述整像素运动估计信息,所述待编码宏块和所述重建图像参考数据发送给第二存储模块;
所述第二存储模块接收并存储所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
亚像素运动估计模块读取所述第二存储模块的所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,根据所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据发送给第三存储模块;
所述第三存储模块接收并存储所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
所述综合处理模块读取所述第三存储模块中的所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行帧内预测,结合所述亚像素运动估计信息,得到预测残差和表征编码方式的辅助信息,对所述预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和所述表征编码方式的辅助信息发送给第四存储模块;
所述第四存储模块接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息;
所述熵编码模块读取所述第四存储模块中的所述转换后的残差数据和所述表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
对所述预测残差变换和量化之后还包括:将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。
所述第四存储模块接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息,之后还包括:环路滤波模块读取所述重建图像,对所述重建图像以整帧为单位进行环路滤波,并将滤波后的重建图像存入外部存储器。
所述重建图像存入外部存储器;
或,所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中;
由所述熵编码模块通过所述第四存储模块的端口读出,并将所述重建图像存入所述外部存储器;
或,
将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由所述环路滤波模块通过所述第四存储模块的端口读出,并对所述重建图像进行环路滤波后,存入所述外部存储器。
所述编码器中的各个模块之间还传递包括但不限于编码端预设参数的数据。
本发明实施例提供的技术方案的有益效果是:
本发明改进了视频编码器中的流水级结构,包括,增加了独立的数据加载模块,流水级之间以及流水级与外部存储器之间采用双端口存储器模块进行数据交互,克服了原有利用总线或共享内存进行数据交互所导致的低效率问题,简化了数据交互的控制逻辑,提高了流水级之间数据传输的速度。该视频编码器的级间数据交互均在宏块级进行,数据结构一致,简化了控制流程,有效的提高吞吐率以及降低延迟,可以对高清视频源进行实时的编码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1(a)是现有技术提供的4:2:0图像格式的亮度与色度组合示意图;
图1(b)是现有技术提供的一种编码方法的示意图;
图2是本发明实施例1提供的一种视频编码器的结构示意图;
图3是本发明实施例2提供的一种视频编码方法的方法流程图;
图4是本发明实施例2提供的一种视频编码方法的宏块级流水示意图;
图5是本发明实施例2提供的一种视频编码方法中1/4亚像素精度插值示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
为了提高编码时数据处理的效率,本发明实施例提供了一种视频编码器,参见图2,该编码器包括:
数据加载模块201,用于读入待编码宏块和重建图像参考数据,将读入的待编码宏块和重建图像参考数据发送给第一存储模块202;
第一存储模块202,用于接收并存储数据加载模块201发送的待编码宏块和重建图像参考数据;
整像素运动估计模块203,用于读取第一存储模块202中的待编码宏块和重建图像参考数据,根据待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将整像素运动估计信息,待编码宏块和重建图像参考数据发送给第二存储模块204;
第二存储模块204,用于接收并存储整像素运动估计模块203发送的整像素运动估计信息、待编码宏块和重建图像参考数据;
亚像素运动估计模块205,用于读取第二存储模块204中的整像素运动估计信息、待编码宏块和重建图像参考数据,根据整像素运动估计信息、待编码宏块和重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将亚像素运动估计信息、待编码宏块和重建图像参考数据发送给第三存储模块206;
第三存储模块206,用于接收并存储亚像素运动估计模块205发送的亚像素运动估计信息、待编码宏块和重建图像参考数据;
综合处理模块207,用于读取第三存储模块206中的亚像素运动估计信息、待编码宏块和重建图像参考数据,进行帧内预测,结合亚像素运动估计信息,得到预测残差和表征编码方式的辅助信息,对预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和表征编码方式的辅助信息发送给第四存储模块208;
综合处理模块207还包括:
反变换量化单元2071,用于将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。
第一存储单元2072,用于将重建图像存入外部存储器;
第二存储单元2073,用于将重建图像通过第四存储模块208的端口暂存在第四存储模块208中,由熵编码模块210通过第四存储模块208的端口读出,并将重建图像存入外部存储器;
第三存储单元2074,用于将重建图像通过第四存储模块208的端口暂存在第四存储模块208中,由环路滤波模块209通过第四存储模块208的端口读出,并对重建图像进行环路滤波后,存入外部存储器;
第四存储模块208,用于接收并存储综合处理模块207发送的转换后的残差数据和表征编码方式的辅助信息;
该编码器进一步包括:环路滤波模块209,用于对重建图像以整帧为单位进行环路滤波,以获得更好的参考帧质量,供帧间预测参考。
熵编码模块210,用于读取第四存储模块208中的转换后的残差数据和表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
第一扫描单元2075,用于扫描量化后的宏块数据,读取宏块的残差数据,将所述残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据发送给第四存储模块208;
第二扫描单元2101,用于扫描量化后的宏块数据,读取宏块的残差数据,将所述残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据发送给所述熵编码模块。
需要说明的是,第一扫描单元2075和第二扫描单元2101执行的“扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构”,既可以在综合处理模块207中进行,也可以在熵编码模块210中进行,该扫描过程只要在熵编码之前进行即可。
需要说明的是,若重建图象参考数据通过第四存储模块208的端口暂存,则重建图象参考数据既可以由环路滤波模块209从第四存储模块208的端口读出,并对其进行环路滤波后,存入外部存储器,也可以在编码器不选用环路滤波模块209时,由熵编码模块210从第四存储模块208的端口读出,并将重建图像存入外部存储器。
需要说明的是,各个模块在工作时所传递的数据还包括但不限于一些编码时需要的设定参数,这些预设参数可以用流水级之间逐级传递的方式传递,也可以将预设参数存储在全局存储器(或寄存器)中,某一级流水级使用时直接从全局存储器(寄存器)中读取。
需要说明的是,本发明对帧模式和场模式的图像都统一适用,所以不再区分帧和场,统一称为帧。
本发明改进了视频编码器中的流水级结构,包括,增加了独立的数据加载模块,流水级之间以及流水级与外部存储器之间采用双端口存储器模块进行数据交互,克服了原有利用总线或共享内存进行数据交互所导致的低效率问题,简化了数据交互的控制逻辑,提高了流水级之间数据传输的速度。该视频编码器的级间数据交互均在宏块级进行,数据结构一致,简化了控制流程,有效的提高吞吐率以及降低延迟,可以对高清视频源进行实时的编码。
实施例2
为了提高编码时数据处理的效率,本发明实施例提供了一种视频编码方法,参见图3,该方法包括:
301:数据加载模块201读入待编码宏块和重建图像参考数据;
其中,待编码宏块具体是指原始视频数据中的待编码宏块,该重建图像参考数据是与当前接收的原始视频数据中待编码宏块相对应的。
302:数据加载模块201将读入的待编码宏块和重建图像参考数据发送给第一存储模块202;
303:第一存储模块202接收并存储数据加载模块201发送的待编码宏块和重建图像参考数据;
304:整像素运动估计模块203读取第一存储模块202中存储的待编码宏块和重建图像参考数据,根据该待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将该整像素运动估计信息,待编码宏块和重建图像参考数据发送给第二存储模块204;
其中,整像素级运动搜索即是在多种不同预测模式下,在整像素级计算待编码宏块和某一个(或某几个)参考帧(参考帧来自重建图像参考数据)在预设的搜索范围内的匹配程度(该匹配程度常用“绝对残差和”表示),取每个预测模式中匹配程度最高的宏块,作为该预测模式下的最佳匹配宏块(即匹配程度最高的宏块),将最佳匹配宏块的相关信息作为整像素运动估计信息。
其中,整像素运动估计信息包括整像素级运动搜索得到的运动矢量、匹配程度等信息。
305:第二存储模块204接收并存储整像素运动估计模块203发送的整像素运动估计信息,待编码宏块和重建图像参考数据;
306:亚像素运动估计模块205读取第二存储模块204中的整像素运动估计信息,根据该整像素运动估计信息、待编码宏块和重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将该亚像素运动估计信息、待编码宏块和重建图像参考数据发送给第三存储模块206;
其中,亚像素运动估计信息包括亚像素插值滤波和亚像素级运动搜索得到的运动矢量、匹配程度等信息。
307:第三存储模块206接收并存储亚像素运动估计模块205发送的亚像素运动估计信息、待编码宏块和重建图像参考数据;
308:综合处理模块207读取第三存储模块206中的亚像素运动估计信息、待编码宏块和重建图像参考数据,进行帧内预测,结合亚像素运动估计得到的信息,形成预测残差和表征编码方式的辅助信息,对预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和表征编码方式的辅助信息发送给第四存储模块208;
具体地,将亚像素运动估计得到的最佳匹配块的匹配程度与帧内预测得到的预测块的匹配程度,进行比较,得出最终的最佳匹配块,选择该最佳匹配块对应的预测方式,并根据待编码宏块与最佳匹配块计算得到的残差进行变化编码(如离散余弦变换DCT等),按照预设的量化等级进行量化;
其中,表征编码方式的辅助信息包括表征预测方式的信息以及其他表征编码方式的编信息,该辅助信息有些是编码端设定的参数,有些是帧内预测和帧间预测进行模式选择后的预测信息。
其中,帧内预测,是指在待编码宏块所在帧内,根据已经编码完毕的重建宏块数据,预测待编码宏块,并记录预测方法以及预测得到的宏块与待编码宏块的匹配程度,其预测方法有多种,本发明不做具体限定。
其中,变换和量化的方法有多种,本发明不做具体限定。
其中,亚像素运动估计的目的是减少待编码宏块与最佳匹配宏块之间的残差,降低码率,提高压缩效率,提高运动估计的精度。
其中,扫描的方法有多种,本发明不做具体限定。
进一步地,步骤308后还包括:将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。重建图像既可以存入外部存储器;也可以通过第四存储模块的端口暂存在第四存储模块中,由熵编码模块通过第四存储模块的端口读出,并存入外部存储器。
上述指定块是指,亚像素运动估计得到的最佳匹配块的匹配程度与帧内预测得到的预测块的匹配程度,进行比较,得到的匹配程度最高的块,即最终的最佳匹配块。
309:第四存储模块208接收综合处理模块207发送转换后的残差数据和表征编码方式的辅助信息,并将转换后的残差数据发送给熵编码模块210;
进一步地,环路滤波模块209读取重建图像数据,对重建图像以整帧为单位进行环路滤波;
其中,环路去块效应滤波是为了获得更好的参考帧质量,供帧间预测参考。
需要说明的是,环路去块效应滤波是可选的增强技术,如果选用环路去块效应滤波,则重建图像先存入第四存储模块208中,然后经过环路去块效应滤波后,再存入外部存储器。
如果不选用环路去块效应滤波,则重建图像既可以直接存入外部存储器,也可以通过第四存储模块的端口暂存,然后由熵编码模块从第四存储模块的读出,并将重建图象存入外部存储器。
310:熵编码模块210读取第四存储模块208中的残差数据和表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
需要说明的是,执行步骤308中的“扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构”,也可以在步骤309之后,步骤310之中进行,则有:综合处理模块输出量化后的宏块,第四存储模块接收量化后的宏块,将该宏块发送给熵编码模块,熵编码模块扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,根据处理后的残差数据进行熵编码,将得到的二进制码流输出。
以上步骤301-步骤310的过程中,编码是一个宏块级的流水编码过程,在处理一个编码图像帧的多个宏块时,各个模块的工作是并行的,即各个模块分为5级流水级进行工作,各个流水级在不同时间段所处理的宏块可由下表所示。
为方便描述,按照宏块编码的次序,对当前编码图像帧的所有宏块从1开始依次进行编号,编号为N的宏块记为“宏块N”。本实施例中表达某模块“处理第X个宏块”时,如果第X个宏块存在,则该模块按实施例中所描述方法处理,如果第X个宏块不存在(例如处理第N-3个宏块,而N=1时),则指该模块闲置不作处理。
本发明实施例中用端口A和端口B来表示存储模块的两个端口(一个存储的情况下)或两组端口(多个并列存储的情况下)。同样,本发明实施例所提到的模块的输入端口A和输出端口B,可以是指一个端口,也可以是指并列的一组端口。
如图4所示,在第N个时间段,第一级流水级中,数据加载模块通过外部存储器控制,从外部存储器中读入待编码宏块,该待编码宏块为原始视频中的宏块N,通过第一存储模块的端口A写入第一存储模块。同时,通过外部存储器控制,从外部存储器中读入宏块N对应的重建图像参考数据,并通过第一存储模块的端口A写入第一存储模块。
如图4所示,在第N个时间段,第二级流水级中,整像素运动估计模块通过第一存储模块的端口B,从第一存储模块中读出待编码的宏块N-1以及宏块N-1对应的重建图像参考数据,并按照多种不同的预测模式,根据读出的数据进行整像素运动搜索,在整像素级计算出待编码宏块N-1和某一个(或某几个)参考帧(参考帧来自重建图像参考数据)在一定的搜索范围内的匹配程度(该匹配程度常用绝对残差和表示),取每个预测模式中匹配程度最高的宏块,作为该预测模式下的最佳匹配宏块(即匹配程度最高的宏块)。并将待编码宏块数据,重建图像参考数据以及与最佳匹配块相关的数据通过第二存储模块的端口A写入第二存储模块。
如图4所示,在第N个时间段,第三级流水级中,亚像素运动估计模块通过第二存储模块的端口B从第二存储模块中,读入待编码宏块N-2的数据、重建图像参考数据以及与最佳匹配块相关的数据,根据读入的数据通过亚像素插值滤波,在整像素运动估计找出的最佳匹配块的周围一定范围内的整像素数据之间,插入亚像素(如1/2或1/4等)(如图5所示),然后作亚像素运动级运动搜索,具体地,按照不同的预测模式,在亚像素级计算出待编码宏块N-1和某一个(或某几个)参考帧(参考帧来自重建图像参考数据)在一定的搜索范围内的匹配程度(该匹配程度常用绝对残差和表示),取每个预测模式中匹配程度最高的宏块,作为该预测模式下的最佳匹配宏块(即匹配程度最高的宏块)。然后,将待编码宏块数据,重建图像参考数据以及亚像素运动估计产生的数据通过第三存储模块的端口A写入第三存储模块。
如图4所示,在第N个时间段,第四级流水级中,综合处理模块通过第三存储模块的端口B,从第三存储模块中读出第个待编码宏块N-3数据,重建图像参考数据以及亚像素运动估计产生的数据。
首先进行帧内预测,即在待编码宏块所在帧内,根据已经编码完毕的重建宏块数据,预测待编码宏块,并记录预测方法以及预测得到的宏块与待编码宏块的匹配程度。然后,将运动估计得到的最佳匹配块的匹配程度与帧内预测得到的预测块的匹配程度,进行比较,得出最终的最佳匹配块,并形成表征预测方式的信息,以及其他一些表征编码方式的辅助信息,然后根据待编码块与最佳匹配块进行计算,将得到的残差进行变化编码(如离散余弦变换DCT等),接着按照预设的量化等级进行量化。最后,按照预设的扫描顺序(如zig-zag等)将变换以及量化后的残差块按照预设的顺序,形成适合熵编码处理的数据结构(如AVS(Audio Video Coding Standard,数字音视频编解码技术标准)中的游程-非零系数对,其中游程表示非零系数之前的零的个数),将此残差块和表征编码方式的辅助信息通过第四存储模块的端口A写入第四存储模块。
进一步地,第四级流水级还需要将量化后的残差块进行反量化,反变换,结合最佳匹配块的数据形成重建图像。重建图像既可以在第四级流水级通过外部存储器控制存入外部存储器;也可以通过存第四储模块的端口A暂存在第四存储模块中,再由第五级流水级的熵编码模块通过第四存储模块的端口B读出,并通过外部存储器控制将重建图像存入外部存储器;或由第五级流水级的环路滤波模块通过第四存储模块的端口B读出,并对重建图像进行环路滤波后,通过外部存储器控制将滤波后的重建图像存入外部存储器。
如图4所示,在第N个时间段,第五级流水级中,环路滤波模块和熵编码模块在同一流水级,环路滤波模块对重建图像以整帧为单位进行环路滤波,以获得更好的参考帧质量,供帧间预测参考。
熵编码模块通过第四存储模块的端口B从第四存储模块中读出宏块N-4的适合熵编码处理的数据结构和表征编码方式的辅助信息,并按照预设的熵编码算法进行编码,从而输出最终的二进制码流。
需要说明的是,各个模块在工作时所传递的数据还包括但不限于一些编码时需要的设定参数,这些预设参数可以用流水级之间逐级传递的方式传递,也可以将预设参数存储在全局存储器(或寄存器)中,某一级流水级使用时直接从全局存储器(寄存器)中读取。
本发明改进了视频编码器中的流水级结构,包括,增加了独立的数据加载模块,流水级之间以及流水级与外部存储器之间采用双端口存储器模块进行数据交互,克服了原有利用总线或共享内存进行数据交互所导致的低效率问题,简化了数据交互的控制逻辑,提高了流水级之间数据传输的速度。该视频编码器的级间数据交互均在宏块级进行,数据结构一致,简化了控制流程,有效的提高吞吐率以及降低延迟,可以对高清视频源进行实时的编码。
本发明实施例可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,例如,计算机的硬盘、缓存或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、合并、拆分、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种视频编码器,其特征在于,包括:
数据加载模块,用于读入待编码宏块和重建图像参考数据,将读入的待编码宏块和重建图像参考数据发送给第一存储模块;
所述第一存储模块,用于接收并存储所述待编码宏块和所述重建图像参考数据;
整像素运动估计模块,用于读取所述第一存储模块中的所述待编码宏块和所述重建图像参考数据,根据所述待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将所述整像素运动估计信息,所述待编码宏块和所述重建图像参考数据发送给第二存储模块;
所述第二存储模块,用于接收并存储所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
亚像素运动估计模块,用于读取所述第二存储模块的所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,根据所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据发送给第三存储模块;
所述第三存储模块,用于接收并存储所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
综合处理模块,用于读取所述第三存储模块中的所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行帧内预测,结合所述亚像素运动估计信息,得到预测残差和表征编码方式的辅助信息,对所述预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和所述表征编码方式的辅助信息发送给第四存储模块;
所述第四存储模块,用于接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息;
熵编码模块,用于读取所述第四存储模块中的所述转换后的残差数据和所述表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
2.如权利要求1所述的视频编码器,其特征在于,所述综合处理模块还包括:
反变换量化单元,用于将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。
3.如权利要求2所述的视频编码器,其特征在于,所述编码器还包括:
环路滤波模块,用于读取所述重建图像,对所述重建图像以整帧为单位进行环路滤波。
4.如权利要求3所述的视频编码器,其特征在于,所述综合处理模块还包括:
第一存储单元,用于将所述重建图像存入外部存储器;
第二存储单元,用于将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由所述熵编码模块通过所述第四存储模块的端口读出,并将所述重建图像存入所述外部存储器;
第三存储单元,用于将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由所述环路滤波模块通过所述第四存储模块的端口读出,并对所述重建图像进行环路滤波后,存入所述外部存储器。
5.如权利要求1至4任一项所述的视频编码器,其特征在于,所述编码器中的各个模块之间还传递包括但不限于编码端预设参数的数据。
6.一种视频编码方法,其特征在于,包括:
数据加载模块读入待编码宏块和重建图像参考数据;
所述数据加载模块将读入的待编码宏块和重建图像参考数据发送给第一存储模块;
所述第一存储模块接收并存储所述待编码宏块和所述重建图像参考数据;
整像素运动估计模块读取所述第一存储模块中的所述待编码宏块和所述重建图像参考数据,根据所述待编码宏块进行整像素级运动搜索,得到整像素运动估计信息,将所述整像素运动估计信息,所述待编码宏块和所述重建图像参考数据发送给第二存储模块;
所述第二存储模块接收并存储所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
亚像素运动估计模块读取所述第二存储模块的所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,根据所述整像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行亚像素插值滤波和亚像素级运动搜索,得到亚像素运动估计信息,将所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据发送给第三存储模块;
所述第三存储模块接收并存储所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据;
所述综合处理模块读取所述第三存储模块中的所述亚像素运动估计信息、所述待编码宏块和所述重建图像参考数据,进行帧内预测,结合所述亚像素运动估计信息,得到预测残差和表征编码方式的辅助信息,对所述预测残差变换和量化,扫描量化后的宏块,读取宏块的残差数据,将读取的残差数据转换成适合熵编码处理的数据结构,将转换后的残差数据和所述表征编码方式的辅助信息发送给第四存储模块;
所述第四存储模块接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息;
所述熵编码模块读取所述第四存储模块中的所述转换后的残差数据和所述表征编码方式的辅助信息,进行熵编码,将得到的二进制码流输出。
7.如权利要求6所述的方法,其特征在于,对所述预测残差变换和量化之后还包括:将量化后的残差块进行反量化,反变换,结合指定块的数据形成重建图像。
8.如权利要求7所述的方法,其特征在于,所述第四存储模块接收并存储所述转换后的残差数据和所述表征编码方式的辅助信息,之后还包括:环路滤波模块读取所述重建图像,对所述重建图像以整帧为单位进行环路滤波,并将滤波后的重建图像存入外部存储器。
9.如权利要求8所述的方法,其特征在于,所述重建图像存入外部存储器;
或,
所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由所述熵编码模块通过所述第四存储模块的端口读出,并将所述重建图像存入所述外部存储器;
或,
将所述重建图像通过所述第四存储模块的端口暂存在所述第四存储模块中,由环路滤波模块通过所述第四存储模块的端口读出,并对所述重建图像进行环路滤波后,存入所述外部存储器。
10.如权利要求6至9任一项所述的视频编码器,其特征在于,所述编码器中的各个模块之间还传递包括但不限于编码端预设参数的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237972 CN101707716B (zh) | 2009-11-19 | 2009-11-19 | 视频编码器和编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910237972 CN101707716B (zh) | 2009-11-19 | 2009-11-19 | 视频编码器和编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101707716A CN101707716A (zh) | 2010-05-12 |
CN101707716B true CN101707716B (zh) | 2011-05-11 |
Family
ID=42377887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910237972 Expired - Fee Related CN101707716B (zh) | 2009-11-19 | 2009-11-19 | 视频编码器和编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101707716B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088603B (zh) * | 2010-12-31 | 2013-12-04 | 北京大学深圳研究生院 | 用于视频编码器的熵编码器及其实现方法 |
CN102143361B (zh) * | 2011-01-12 | 2013-05-01 | 浙江大学 | 一种视频编码方法和装置 |
JP5291134B2 (ja) | 2011-03-09 | 2013-09-18 | 日本電信電話株式会社 | 映像符号化/復号方法,映像符号化/復号装置およびそのプログラム |
JP5291133B2 (ja) | 2011-03-09 | 2013-09-18 | 日本電信電話株式会社 | 画像処理方法,画像処理装置,映像符号化/復号方法,映像符号化/復号装置およびそれらのプログラム |
CN103379331B (zh) * | 2012-04-28 | 2018-10-23 | 南京中兴新软件有限责任公司 | 一种视频码流编解码方法和装置 |
CN103400499B (zh) * | 2013-07-22 | 2015-04-22 | 青岛海信网络科技股份有限公司 | 超高清智能视频电子警察系统及其判定车辆违章的方法 |
CN106454353A (zh) * | 2015-08-07 | 2017-02-22 | 辉达公司 | 视频编码器、视频编码系统和视频编码方法 |
CN112911291A (zh) * | 2021-01-29 | 2021-06-04 | 北京博雅慧视智能技术研究院有限公司 | 一种针对avs2硬件编码器实时流水架构电路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039430A (zh) * | 2007-05-08 | 2007-09-19 | 清华大学 | 一种视频编码中对残差矩阵的快速扫描方法 |
CN101389021A (zh) * | 2007-09-14 | 2009-03-18 | 华为技术有限公司 | 视频编解码方法及装置 |
-
2009
- 2009-11-19 CN CN 200910237972 patent/CN101707716B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039430A (zh) * | 2007-05-08 | 2007-09-19 | 清华大学 | 一种视频编码中对残差矩阵的快速扫描方法 |
CN101389021A (zh) * | 2007-09-14 | 2009-03-18 | 华为技术有限公司 | 视频编解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101707716A (zh) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101707716B (zh) | 视频编码器和编码方法 | |
CN104885471B (zh) | 用于下一代视频的编码/未编码的数据的内容自适应熵编码 | |
CN100461867C (zh) | 一种帧内图像预测编码方法 | |
CN104883578B (zh) | 对帧内预测模式进行解码的方法 | |
CN103918273B (zh) | 确定用于变换系数的二进制码字的方法 | |
CN103931197B (zh) | 确定用于变换系数的二进制码字的方法 | |
CN105491377B (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
CN101490968A (zh) | 用于视频压缩的并行处理装置 | |
US20120020579A1 (en) | Image encoder and decoder using unidirectional prediction | |
CN102647593B (zh) | 一种avs帧内模式决策方法和装置 | |
CN112738511B (zh) | 一种结合视频分析的快速模式决策方法及装置 | |
CN102143361B (zh) | 一种视频编码方法和装置 | |
CN102238383B (zh) | 用于视频编解码器的多总线体系结构 | |
CN101115207B (zh) | 基于预测点间相关性的帧内预测实现的方法及装置 | |
US20170026652A1 (en) | Image encoder and decoder using unidirectional prediction | |
CN107690069B (zh) | 一种数据驱动的级联视频编码方法 | |
CN102572430A (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
Kim et al. | A low-power surveillance video coding system with early background subtraction and adaptive frame memory compression | |
CN101841722B (zh) | 滤波边界强度的检测装置的检测方法 | |
CN102595137B (zh) | 基于图像像素块行/列流水线的快速模式判决装置和方法 | |
CN102065288B (zh) | 结合软硬件实现的视频处理系统、方法及其装置 | |
CN100413342C (zh) | 用于视频或图像压缩的帧内预测模式编解码的方法和装置 | |
CN102420989A (zh) | 帧内预测方法和装置 | |
CN106063269A (zh) | 动态图像编码装置、动态图像解码装置以及动态图像编码/解码方法 | |
US20240114185A1 (en) | Video coding for machines (vcm) encoder and decoder for combined lossless and lossy encoding |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20161119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |