一种传输视频压缩编码结果的方法和装置的制作方法

文档序号:7652216阅读:155来源:国知局
专利名称:一种传输视频压缩编码结果的方法和装置的制作方法
技术领域
本发明涉及一种视频信号传输技术,特别涉及一种实时传输视频压缩编码结果的方法和装置。
背景技术
目前,在对视频图像进行端到端的传输时,为节省传输所需的带宽资源,通常要对传输的视频图像进行压缩编码。目前的视频编码算法通常以宏块为单位进行,在编码过程中,首先将当前帧逐行输入缓存单元,当到达可以编码的基础数据量后,编码单元由缓存单元中取出原始视频数据,按宏块为单位进行编码,并在完成每个宏块的编码后,将该编码结果存储到预先设置好的存储单元中。到当前帧的数据编码结束后,触发外部数据通道将存储单元中当前帧的编码结果读走,进行后续处理或进行传输。
举个例子说明上述过程,当采用MPEG4对视频图像进行压缩编码时,宏块大小为16行×16列。由于数据是逐行输入,因此相应地,可以进行编码的基础数据量为16行,也就是说,当输入缓存单元的当前帧数据达到16行后,编码单元开始启动编码,读取缓存单元中的16行数据按宏块进行编码。每完成一个宏块的编码,编码单元将该编码结果存储到预设的存储单元中。图1为进行MPEG4编码时,输入过程与编码过程的关系示意图。如图1所示,通常视频数据的输入速度总是低于压缩编码的速度,当缓存单元准备好16行数据后,编码单元开始编码该16行数据,同时,缓存单元开始接收输入的下一组16行数据。由于压缩编码速度高于数据的输入速度,因此当编码单元在T1时刻已编码完成当前的16行数据时,缓存单元还未将下一组16行数据准备好;那么在T1时刻到下一组16行数据准备好的T2时刻间,形成了压缩编码空闲时隙,也称为当前帧编码的绝对空闲时间,这段时间内,编码器内部总线是空闲的。另外,在图1中的T1时刻前的实际编码时间内,系统总线也并不是全部处于被占用状态,在该时间内,总线还是会存在一些细碎的空闲时隙,将这些在实际编码时间内的空闲时隙称为当前帧编码的相对空闲时间。当到达T2时刻后,编码单元继续进行下一组16行数据的编码。直到当前帧编码结束,再由低速数据传输通道传出存储单元中完整帧压缩编码结果,即利用帧间的非编码时间传输当前帧的编码结果。总体看来,一帧压缩编码及传输的时间总耗费如图2所示。
由图2能直观地看到,在上述的编码结果传输方式中,在绝对空闲时间内,总线上没有数据传输,另外,在相对空闲时间内(图2中未示出)总线也同样处于空闲状态,这些空闲时间内的总线空闲均造成了系统资源的极大浪费,并且在相临帧编码之间耗费大量非编码时间,消极影响了帧率控制能力。另外,当压缩的视频帧尺寸越小,绝对空闲时间会越长,资源浪费越大。当压缩的视频帧尺寸较大时,压缩后的编码数据量也相对较大,对于存储单元中的存储空间要求也就越大,事实上,也是对硬件配置的较高要求。

发明内容
有鉴于此,本发明提供一种传输视频压缩编码结果的方法和装置,能够节省系统资源。
为实现上述目的,本发明采用如下的技术方案一种传输视频压缩编码结果的方法,包括a、设置先进先出存储器FIFO的最大容量和输出阈值;b、对输入的当前帧数据编码,将编码结果数据输入FIFO中;在当前帧的编码过程中,每当FIFO中的数据量达到输出阈值时,控制输出FIFO中的编码结果数据;c、当前帧数据编码完成后,控制输出FIFO中剩余的编码结果数据,并返回步骤b,直到输出所有的视频帧编码结果数据。
较佳地,步骤a中根据当前帧的编码结果的产生速度和FIFO中数据的输出速度设置FIFO的最大容量和输出阈值。
较佳地,根据编码视频帧的尺寸、帧内像素数据的图像复杂度、编码单元的编码速度以及编码的目标帧率确定所述编码结果产生速度。
较佳地,根据FIFO与编码结果数据的接收设备间传输通道的数据传输速率和该传输通道对于FIFO读信号的响应时间确定所述FIFO中数据的输出速度。
较佳地,步骤b中FIFO每次输出的编码结果数据为与设置的输出阈值等量的编码结果数据。
较佳地,步骤b中所述控制输出为向外部编码结果数据的接收设备发送第一控制信号,通知该接收设备读取FIFO中的编码结果数据。
较佳地,步骤c中所述控制输出FIFO中剩余的编码结果数据为向外部编码结果数据的接收设备发送第二控制信号,并携带FIFO中的剩余数据量,通知该接收设备读取FIFO中剩余的编码结果数据。
较佳地,所述编码结果数据优先在当前帧编码的绝对空闲时间内进行输出。
较佳地,若所述编码结果数据能够在当前帧编码的绝对空闲时间内完成输出,则将FIFO的输出阈值和最大容量设置为等于编码的基础数据量压缩后的编码结果数据量;若所述编码结果数据未能在当前帧编码的绝对空闲时间内完成输出,则设置FIFO的输出阈值为小于编码的基础数据量压缩后的编码结果数据量;设置FIFO的最大容量为大于FIFO的输出阈值且小于编码的基础数据量压缩后的编码结果数据量。
一种传输视频压缩编码结果的装置,包括缓存单元、编码单元、FIFO和传输控制单元;所述缓存单元,用于接收输入的当前帧数据,并触发编码单元开始编码;所述编码单元,用于在接收到所述缓存单元的触发信号后,从缓存单元中读取视频数据,并进行编码,将编码结果数据顺序存储到FIFO中;所述FIFO,用于存储所述编码单元发送的编码结果数据;所述传输控制单元,用于设置所述FIFO的最大容量和输出阈值,监测所述FIFO中的数据量,在当前帧的编码过程中,每当所述FIFO中的数据量达到输出阈值时,控制所述FIFO输出编码结果数据;在当前帧完成编码后,控制所述FIFO输出剩余的编码结果数据。
较佳地,所述传输控制单元,用于在监测到所述FIFO中的数据量达到设置的输出阈值时,向编码结果数据的接收设备发送第一控制信号,通知该设备读取所述FIFO中的编码结果数据;还用于在当前帧完成编码后,向编码结果数据的接收设备发送第二控制信号,并携带所述FIFO中的剩余数据量,通知该设备读取所述FIFO中剩余的编码结果数据。
由上述技术方案可见,本发明中,利用先进先出存储器(FIFO)作为存储编码结果的存储单元,首先设置FIFO的最大容量和输出阈值,然后编码单元将每个宏块编码后的结果顺序存储在FIFO中,在当前帧的编码过程中,当FIFO中的可读编码结果数据量达到输出阈值时,即输出与设置的输出阈值等量的编码结果数据;在当前帧编码结束后,再输出FIFO中剩余的数据。由于在本发明的方法和装置中,编码结果的存储单元为FIFO,因此可以实现编码结果读写的同时进行,在未完成当前帧的全部编码前,可以传输部分编码结果数据,具体从FIFO中读数据的时间由设置的输出阈值来控制。这样,在当前帧的编码过程中,可以很好地利用包括相对空闲时间和绝对空闲时间在内的空闲时隙内的总线资源,传输部分编码结果数据,大大减少了当前帧编码全部结束后,用于传输编码结果数据的时间,以节省整个编码与传输过程中占用的系统资源。
更进一步地,为使系统资源得到最佳利用,在设置FIFO的最大容量和输出阈值时,要结合当前帧编码结果的产生速度和FIFO中数据的输出速度来综合考虑,以最大限度利用系统空闲资源、且不影响编码等其它资源的占用。


图1为目前进行MPEG4编码时,输入过程与编码过程的关系示意图。
图2为现有的一帧压缩编码及传输的时间总耗费。
图3为本发明提供的传输视频压缩编码结果的方法总体流程图。
图4为本发明中传输视频压缩编码结构的装置总体结构图。
图5为本发明实施例中传输视频压缩编码结果的方法具体流程图。
图6为依照本发明的方式,MPEG4一帧压缩编码及传输时间的总耗费示意图。
图7为本发明实施例中传输视频压缩编码结果的系统具体结构图。
具体实施例方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图,并举实施例对本发明作进一步详细说明。
本发明的基本思想是充分利用包括相对空闲时间和绝对空闲时间在内的空闲时隙,以最大化系统资源利用率,节省编码和传输过程中占用的总的系统资源。
图3为本发明提供的传输视频压缩编码结果的方法总体流程图。如图3所示,该方法包括步骤301,设置编码结果存储单元FIFO的最大容量和输出阈值。
步骤302,对输入的当前帧数据进行压缩编码,将编码结果输入FIFO中;在当前帧的编码过程中,当FIFO中的可读数据量达到输出阈值时,控制输出FIFO中的编码结果数据。
步骤303,当前帧数据编码完成后,输出FIFO中剩余的编码结果数据,并返回步骤302,直到输出所有的视频帧编码数据。
至此,本发明提供的传输视频压缩编码结果的方法总体流程结束。本发明还提供了传输视频压缩编码结果的装置。图4即为本发明中传输视频压缩编码结果的装置总体结构图。如图4所示,该装置包括缓存单元、编码单元、FIFO和传输控制单元。
在图4所示的装置中,缓存单元,用于接收输入的当前帧视频数据,每当输入的数据量达到编码基础数据量的整数倍时,缓存单元触发编码单元开始编码。
编码单元,接收到缓存单元的触发信号后,从缓存单元中读取视频数据,并按宏块开始编码,将编码结果顺序存储到FIFO中。
FIFO,用于存储编码单元发送的编码结果数据。
传输控制单元,用于设置FIFO的最大容量和输出阈值,监测FIFO中的可读数据量,在当前帧的编码过程中,每当达到输出阈值时,控制FIFO输出编码结果数据;在当前帧完成编码后,控制FIFO输出剩余的编码结果数据。
具体地,传输控制单元可以通过发送不同的控制信号,实现在当前帧编码的不同阶段,控制输出FIFO中编码结果数据。优选的方式可以为在编码过程中,向外部接收编码结果数据的接收设备发送第一控制信号,通知该接收设备读取定量的编码结果数据;在编码完成后,发送第二控制信号,通知接收设备读取剩余的编码结果数据。
由上述可见,本发明的方法和装置中,将编码单元的编码结果存储到FIFO中,这样,在当前帧的编码过程中,可以利用包括相对空闲时间和绝对空闲时间在内的空闲时隙实现编码结果的传输,于是,当当前帧编码结束时,需要传输的编码结果数据量大大减小,节省了用于帧间传输的非编码时间的耗费,节省了系统资源。
上述即为本发明的总体概述,下面以传输MPEG4编码结果为例,说明本发明的具体实施方式

实施例本实施例中,采用的编码算法为MPEG4,其宏块大小为16×16,也就是说编码的基础数据量为16行。编码结果传输给接收端模块,进行后续处理或解码观看。
图5为本发明实施例中传输视频压缩编码结果的方法具体流程图。如图5所示,该方法包括步骤501,设置编码结果存储单元FIFO的最大容量和输出阈值。
本步骤中,设置FIFO最大容量和输出阈值的具体方式可以为根据编码结果的平均产生速度和FIFO中数据的输出速度设置,使得既限制FIFO所占的存储空间尽量小、又防止FIFO中的数据溢出。优选地,使FIFO中数据的输出尽量利用当前视频编码的绝对空闲时间进行,在本实施例中,也就是利用每16行的绝对空闲时间进行编码结果数据的传输。具体地,编码结果的平均产生速度与编码视频帧的尺寸、帧内像素数据的图像复杂度、编码单元的编码速度以及编码的目标帧率有关。FIFO中数据的输出速度与传输通道的数据传输速率和该传输通道对于FIFO读信号的反映速度有关。显然,本领域技术人员能够依据上述指标,进行FIFO最大容量和输出阈值的设置。
优选地,根据编码结果产生速度和FIFO中数据输出速度的匹配关系可以如下设置输出阈值和最大容量如果16行数据压缩后的编码结果数据量能够在每16行的绝对空闲时间内传输完毕,那么可以将FIFO中的输出阈值设置为16行数据压缩后的编码结果数据量,将最大容量设置为与输出阈值相等。这样,能够保证在编码单元完成16行数据的编码后,开始进行编码结果的传输,从而保证在总线最空闲的阶段传输数据。通常,对于小尺寸的视频帧(如VGA、CIF和QCIF大小的视频帧),由于其编码结果的数据量较小,其每16行的编码空闲段远大于进行编码的时间段,也就是说,图2中空闲段A2与非空闲段A1间的比例较大,对于这类的视频帧比较容易满足上述条件,适合采用上述的输出阈值设置;但对于16行数据压缩后的编码结果数据量很大(如D1格式等的大尺寸视频帧的编码)的视频帧,其每16行的绝对空闲时间很短,甚至会为0,由于绝对空闲时间缩短、加之需要传输的结果数据量较大,这类的视频帧很难在每16行的绝对空闲时间内将16行编码后的数据结果传输完毕;另外,在编码结果数据的输出速度很慢的情况下,也有可能在每16行的绝对空闲时间内无法将16行编码后的数据结果传输完毕;对于上述这些在绝对空闲时间内无法将编码结果数据传输完毕的视频帧,可以在设置输出阈值时,使该阈值小于16行数据压缩后的编码结果数据量,从而能够较早地开始传输编码结果数据,以利用相对空闲时间尽量多地传输编码结果数据。这样,大大减少了编码结果数据存储空间的大小、缩短了帧间用于传输编码结果数据的时间。根据对输出阈值的上述设置,再结合前述的各项指标即可以设置FIFO的最大容量。
下面通过一个具体的例子说明上述输出阈值和最大容量设置假定16行当前帧数据的输入时间为IN_N,IN_N取决于当前视频帧的尺寸和帧率等;16行当前帧数据压缩时间为ENC_N,ENC_N取决于帧内像素数据的图像复杂度和压缩工作时钟等;16行内的绝对空闲时间(即本发明中所述的编码空闲时隙)IDLE_A_N为输入时间与压缩时间之差,即IDLE_A_N=IN_N-EN_N;16行内相对空闲时间IDLE_R_N为编码过程中的空闲时间。16行压缩数据输出时间为TRN_N=(TRN_A_N+WAIT_N*COMPRESSED_N/THD_N);其中,TRN_A_N为16行压缩数据输出实际传输时间,TRN_A_N取决于16行数据的编码结果数据量和输出的数据通道传输速率等;WAIT_N为每次压缩数据输出请求等待时间,WAIT_N取决于编码结果数据接收设备的反应速率等;COMPRESSED_N为16行数据的编码结果数据量;THD_N为设置的FIFO输出阈值;FIFO的最大容量为FIFO_N。
基于上述各个物理量的表示,FIFO输出阈值和最大容量可以如下设置一、当TRN_N<=IDLE_A_N时,也就是说,16行编码结果数据能够在绝对空闲时间(即编码过程中的空闲时隙)内传输完毕,则将FIFO输出阈值和FIFO的最大容量均设置为与16行数据编码后的编码结果数据量相等,即THD_N=FIFO_N=COMPRESSED_N。这样,对于当前帧的编码结果数据,将在每16行数据编码完成后,即开始传输,并且在绝对空闲时间内完成传输,同时,保证FIFO占用的空间尽量小。
二、当TRN_N=(IDLE_A_N+IDLE_R_N*X),且0<X<1时,也就是说,16行编码结果数据不能在绝对空闲时间内传输完毕,但能在16行内的绝对空闲时间与相对空闲时间的总时间内传输完毕。这时,将FIFO输出阈值设置为小于16行数据的编码结果数据量,具体可以为THD_N<=COMPRESSED_N*(1-X),而将FIFO的最大容量设置为大于COMPRESSED_N*(1-X)且小于16行数据的编码结果数据量,以一方面保证FIFO不溢出,另一方面尽量节省FIFO占用的空间;同时可以根据WAIT_N动态调整FIFO的输出阈值和最大容量,使TRN_N取最小值。由于16行的编码数据无法在16行数据的绝对空闲时间内完成传输,因此,将FIFO的输出阈值设置为小于16行数据的编码结果数据量,以在完成16行数据中的部分数据编码时,即开始传输编码结果数据,从而尽可能地利用编码过程中的相对空闲时间传输编码结果数据,同时将FIFO的最大容量作适当调整以保证不溢出,且尽量节省占用的空间。
三、当TRN_N>(IDLE_A_N+IDLE_R_N)时,也就是说,16行编码结果数据无法在16行内的绝对空闲时间与相对空闲时间的总时间内传输完毕,这种情况下,即将FIFO输出阈值设置为小于16行数据的编码结果数据量,具体可以根据WAIT_N的取值,适当地设置一个大于0且小于等于1的Y,将FIFO输出阈值设置为THD_N=COMPRESSED_N*Y,以使TRN_N取最小值,FIFO的最大容量设置为大于输出阈值且小于COMPRESSED_N,以节省FIFO所占的空间。与第二种情况类似,本情况中也将在未完成16行数据的编码时,已经开始利用编码过程中的相对空闲时间传输编码结果数据,与第二种情况的差别在于,开始传输编码结果数据的时间可能更早,以尽可能地利用系统的空闲资源;同时,适当设置FIFO的最大容量,保证不溢出且尽量少占用空间。
在上述输出阈值和最大容量的设置过程中,之所以选择16行为标准是因为,众多的压缩编码算法中,进行编码的宏块大小为16行×16列。经实验结果证明,根据上述方式设置FIFO的最大容量和输出阈值后,在当前帧编码结束时,FIFO中剩余的编码结果数据量最小,因此帧间用于传输编码结果的时间也最短,最大程度地节省了系统资源。
通过下述步骤实现视频帧序列的编码以及编码结果的传输。
步骤502,将视频帧序列中的第一帧设为当前帧。
步骤503,对当前帧数据进行编码,并按照步骤501中的设置控制输出FIFO中的编码结果数据。
本步骤中,对当前帧数据进行编码时,以宏块为单位进行,如前所述本实施例中的宏块大小为16×16,具体编码过程包括输入当前帧的第一组编码数据(即16行数据),编码单元对这一组编码数据按宏块进行编码,并将每个宏块的编码结果数据依次存储到FIFO中;然后,编码单元等候下一组编码数据输入完毕,开始对下一组编码数据进行编码和存储,直到编码完当前帧的所有数据。
在上述当前帧数据进行编码的过程中,FIFO中的数据不断累积。当FIFO中的数据量达到步骤501中设置的输出阈值后,控制输出FIFO中的编码结果数据数据。
具体地,控制输出的方式可以为当FIFO中的数据量达到输出阈值后,向编码结果数据的接收设备发送第一控制信号,通知该设备读取FIFO中的编码结果数据;该设备接收到该第一控制信号后,响应该通知,从FIFO中读取编码结果数据。由于其响应的过程可长可短,因此,如前所述,该响应时间也就作为步骤501中设置FIFO输出阈值和最大容量的参考因素之一了。
在输出编码结果数据时,输出的数据量可以自行设置,优选的输出数据量为,与设置的输出阈值等量。如前所述,优选地,输出阈值可以设置为16行数据的编码结果数据量,这样,可以在编码单元等待一组编码数据输入完毕的过程中,也即图2所示的空闲段进行编码结果数据的传输。在这段时间内,系统总线最闲,可以达到最高的编码结果数据传输效率。
步骤504,在完成当前帧的编码后,将FIFO中剩余的编码结果数据输出。
由于完成当前帧的编码后,可能FIFO中的剩余数据量低于步骤501中设置的输出阈值,因此,在当前帧编码结束后,一次性将FIFO中剩余的编码结果数据全部输出。具体地,可以向编码结果数据的接收设备发送第二控制信号,并将FIFO中的剩余数据量携带在其中,通知该设备读取该剩余数据;编码结果数据的接收设备接收该第二控制信号,并根据其中携带的剩余数据量,从FIFO中读取所有的剩余编码结果数据。
至此,即完成了当前帧数据的编码和传输。图6为依照上述方式MPEG4一帧压缩编码及传输时间的总耗费示意图。通过与图2的比较可以看出,时间总耗费大大减小。
步骤505,判断当前帧是否为视频帧序列的最后一帧,若是,则结束本流程,否则,执行步骤506。
步骤506,将视频帧序列中的下一帧设为当前帧,返回步骤503。
至此,完成了所有视频帧序列的编码和传输,本发明的方法流程结束。这里要说明的是,在执行完步骤504后,可以直接执行步骤505和506,开始下一帧数据的传输,这样,可以提高编码后的帧率;也可以在步骤505之前,在下一帧进行编码前的空闲时间内,利用空闲的系统资源执行其它操作。总之,应用本发明的方法后,减小了一帧压缩编码及传输时间的总耗费,节省了系统资源。
上述即为本实施例中传输压缩编码结果的方法具体实施方式
。本实施例还提供了传输压缩编码结果的系统,可以用于实施上述方法。图7即为本实施例中传输MPEG4编码结果的系统具体结构图。如图7所示,该系统包括MPEG4编码器和接收端模块。其中,MPEG4编码器即为图4所示传输视频编码结果装置的一种具体实施方式
。该MPEG4编码器包括缓存单元、编码单元、FIFO和传输控制单元。
在图7所示的系统中,MPEG4编码器的缓存单元,用于接收输入的当前帧视频数据,每当输入的数据量达到编码基础数据量的整数倍时,也就是16行数据的整数倍时,缓存单元触发编码单元开始编码。
编码单元,接收到缓存单元的触发信号后,从缓存单元中读取16行视频数据,并按宏块开始编码,将编码结果顺序存储到FIFO中。
传输控制单元,用于设置FIFO的最大容量和输出阈值,监测FIFO中的数据量,在当前帧的编码过程中,每当达到输出阈值时,向接收端模块输出第一控制信号,通知接收端模块读取FIFO中的编码结果数据;在当前帧完成编码后,向接收端模块输出第二控制信号,并携带FIFO中的剩余数据量,通知接收端模块读取FIFO中剩余的编码结果数据。
接收端模块,用于接收传输控制单元的控制信号,并判断该控制信号的类型,当确定该控制信号为第一控制信号时,由FIFO中读取定量的编码结果数据;当确定控制信号为第二控制信号时,提取控制信号中携带的剩余数据量,从FIFO中读取所有的剩余编码结果数据。
利用上述系统,即能够实现编码过程与传输过程同时进行的目的,最终在完整帧压缩编码之后的剩余编码结果数据将远远小于完整帧的编码结果数据,则在相临帧编码之间用于结果数据传输的非编码时间得到极大的缩减,节省系统的资源。同时,对于编码结果数据的传输,由于在帧内编码期间,分时地进行编码结果数据的传输,因此能够相对地实现编码结果数据的均匀输出。
在上述本发明的具体实施例中,均以进行MPEG4的编码为例说明的本发明的具体实施方式
。事实上,当采用其它诸如H.263等编码方式时,本发明的方法和装置仍然适用,区别在于进行编码的基础数据量因宏块大小的不同可能有所改变。这里就不再赘述。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种传输视频压缩编码结果的方法,其特征在于,该方法包括a、设置先进先出存储器FIFO的最大容量和输出阈值;b、对输入的当前帧数据编码,将编码结果数据输入FIFO中;在当前帧的编码过程中,每当FIFO中的数据量达到输出阈值时,控制输出FIFO中的编码结果数据;c、当前帧数据编码完成后,控制输出FIFO中剩余的编码结果数据,并返回步骤b,直到输出所有的视频帧编码结果数据。
2.根据权利要求1所述的方法,其特征在于,步骤a中根据当前帧的编码结果产生速度和FIFO中数据的输出速度设置FIFO的最大容量和输出阈值。
3.根据权利要求2所述的方法,其特征在于,根据编码视频帧的尺寸、帧内像素数据的图像复杂度、编码单元的编码速度以及编码的目标帧率确定所述编码结果产生速度。
4.根据权利要求2所述的方法,其特征在于,根据FIFO与编码结果数据的接收设备间传输通道的数据传输速率和该传输通道对于FIFO读信号的响应时间确定所述FIFO中数据的输出速度。
5.根据权利要求1所述的方法,其特征在于,步骤b中FIFO每次输出的编码结果数据为与设置的输出阈值等量的编码结果数据。
6.根据权利要求1所述的方法,其特征在于,步骤b中所述控制输出为向外部编码结果数据的接收设备发送第一控制信号,通知该接收设备读取FIFO中的编码结果数据。
7.根据权利要求1所述的方法,其特征在于,步骤c中所述控制输出FIFO中剩余的编码结果数据为向外部编码结果数据的接收设备发送第二控制信号,并携带FIFO中的剩余数据量,通知该接收设备读取FIFO中剩余的编码结果数据。
8.根据权利要求1到7中任意一项所述的方法,其特征在于,所述编码结果数据优先在当前帧编码的绝对空闲时间内进行输出。
9.根据权利要求8所述的方法,其特征在于,若所述编码结果数据能够在当前帧编码的绝对空闲时间内完成输出,则将FIFO的输出阈值和最大容量设置为等于编码的基础数据量压缩后的编码结果数据量;若所述编码结果数据未能在当前帧编码的绝对空闲时间内完成输出,则设置FIFO的输出阈值为小于编码的基础数据量压缩后的编码结果数据量;设置FIFO的最大容量为大于FIFO的输出阈值且小于编码的基础数据量压缩后的编码结果数据量。
10.一种传输视频压缩编码结果的装置,其特征在于,该装置包括缓存单元、编码单元、FIFO和传输控制单元;所述缓存单元,用于接收输入的当前帧数据,并触发编码单元开始编码;所述编码单元,用于在接收到所述缓存单元的触发信号后,从缓存单元中读取视频数据,并进行编码,将编码结果数据顺序存储到FIFO中;所述FIFO,用于存储所述编码单元发送的编码结果数据;所述传输控制单元,用于设置所述FIFO的最大容量和输出阈值,监测所述FIFO中的数据量,在当前帧的编码过程中,每当所述FIFO中的数据量达到输出阈值时,控制所述FIFO输出编码结果数据;在当前帧完成编码后,控制所述FIFO输出剩余的编码结果数据。
11.根据权利要求10所述的装置,其特征在于,所述传输控制单元,用于在监测到所述FIFO中的数据量达到设置的输出阈值时,向编码结果数据的接收设备发送第一控制信号,通知该设备读取所述FIFO中的编码结果数据;还用于在当前帧完成编码后,向编码结果数据的接收设备发送第二控制信号,并携带所述FIFO中的剩余数据量,通知该设备读取所述FIFO中剩余的编码结果数据。
全文摘要
本发明公开了一种传输视频压缩编码结果的方法,包括a.设置先进先出存储器FIFO的最大容量和输出阈值;b.接收输入的当前帧数据,并对接收到的数据进行压缩编码,将编码结果输入FIFO中;每当FIFO中的可读数据量达到输出阈值时,控制输出FIFO中的编码结果数据;c.当前帧数据编码完成后,控制输出FIFO中剩余的编码结果数据,并返回步骤b,直到输出所有的视频帧编码数据。本发明还公开了一种传输视频压缩编码结果的装置,包括缓存单元、编码单元、FIFO和传输控制单元。应用本发明的方法和装置,可以很好地利用编码与输入数据间空闲时隙内的总线资源,能够节省整个编码与传输过程中占用的系统资源。
文档编号H04N7/24GK101039429SQ20071009894
公开日2007年9月19日 申请日期2007年4月29日 优先权日2007年4月29日
发明者陈东瑛 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1