CN103247344A - 数据包装装置及数据包装方法 - Google Patents
数据包装装置及数据包装方法 Download PDFInfo
- Publication number
- CN103247344A CN103247344A CN2012100272670A CN201210027267A CN103247344A CN 103247344 A CN103247344 A CN 103247344A CN 2012100272670 A CN2012100272670 A CN 2012100272670A CN 201210027267 A CN201210027267 A CN 201210027267A CN 103247344 A CN103247344 A CN 103247344A
- Authority
- CN
- China
- Prior art keywords
- data
- tubbiness
- length
- present
- shift unit
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数据包装装置,用以持续接收一目前数据,包含N个桶状移位器、一控制模块及一包装模块。该控制模块用以根据一先前残余数据的长度决定一移位量,并控制该N个桶状移位器对一目前合并数据依序施以M次桶状移位,以达成该移位量。该包装模块用以合并该先前残余数据及经过该N个桶状移位器的该目前合并数据。该M次桶状移位各自的一移位量皆小于一门槛值,该门槛值与一周期长度相关;该目前合并数据为该目前数据的一部份或全部。N为大于等于2的整数,M为小于等于N的自然数。
Description
技术领域
本发明与存储器管理技术相关,并且尤其与用以包装数据的存储器管理技术相关。
背景技术
近年来有许多电子产品,包括数字相机、录影机、智能型手机等等,皆以产品具备拍摄大尺寸、高解析度的影像/影片的能力来吸引消费者。对硬件制造者来说,如何与时俱进,制作更高品质的影像编码器,一直都是重要的议题。
图1为一影像编码器方块图范例。像素区块输入模块11将数据供应端输入的像素数据组成区块。转换/量化模块12对上述像素区块输入模块11产生的区块施以离散余弦转换(discrete cosine transform,DCT)和量化(quantization)程序,以达成压缩效果。随后,游程长度编码(run length coding,RLC)模块13负责找出量化后数据中的非零值(Run)和非零值之前的零值个数(Length),并以这两个成对的参数表示数据内容,藉此进一步压缩数据量。举例而言,量化后数据00000200007可表示为(Run,Length)=(2,5)(7,4)。可变长度编码(variable length coding,VLC)模块14的工作是根据游程长度编码模块13输出的成对参数查表,将每一组成对参数再次转换为一编码位元流。可变长度编码模块14每次产生的编码位元流的长度是不固定的。位元流包装模块15则将可变长度编码模块14产生的编码位元流合并,以组成长度适当的封包。
接下来以位元流包装模块15包含两个桶状移位器(barrel shifter)的情况为例,说明目前通用的位元流包装机制。如图2(A)所示,桶状移位器15A、15B能容纳的数据长度分别为32位元,并且,桶状移位器15A、15B各自能提供的最大移位量为32位元。位元流包装模块15每周期接收一个位元流。如图2(B)所示,在第一周期中,长度为8位元的位元流a首先被存入桶状移位器15A并且靠左放置。在随后的第二周期中,长度为16位元的位元流b输入位元流包装模块15,为使位元流b邻接于位元流a右侧放置,桶状移位器15A在接收位元流b的同时,对位元流b施以8位元的向右移位。
在第三周期中,长度为24位元的位元流c被传送至位元流包装模块15。由于桶状移位器15A的剩余容量不足,位元流c被拆解为长度分别为8位元、16位元的位元流c1、c2,分别存放在桶状移位器15A、15B中。假设位元流包装模块15应产生的封包长度固定为32位元。因桶状移位器15A中的位元流a、b、c1已足够组成一个封包,在第四周期中,位元流包装模块15除了接收新的位元流d,亦将位元流a、b、c1串接合并为一个封包后输出。如图2(B)所示,位元流c2会被搬移至桶状移位器15A的最左侧。位元流d则是被存入桶状移位器15A中邻接位元流c2的区段。
由以上说明可知,为了正确串接各个位元流,位元流包装模块15每次在接收位元流的同时,必须选择性地利用桶状移位将位元流搬移至正确的区段。就图2(B)所示的范例而言,为了紧邻位元流a,位元流b的起始位置必须是桶状移位器15A中自左端数来第9位元的位置,因此需要向右移位8位元。为了紧邻位元流b,位元流c的起始位置则必须是自左端数来第25位元的位置,因此需要向右移位24位元。于此范例中,桶状移位器15A、15B各自能提供的最大移位量为32位元。
近来随着画面尺寸和画面解析度的提高,位元流的平均长度不断增加。举例而言,过去每个位元流所包含的内容至多不超过32位元,但现在的位元流长度可能会长于32位元。此外,为了配合影像数据量的大幅增加,对编码器硬件速度的要求也逐渐升高。举例而言,若可变长度编码模块14被要求在每个周期内处理两笔数据,位元流包装模块15在每个周期内所接收的位元流长度即可能长于32位元。相对应地,位元流包装模块15必须能在单一周期中提供高于32位元的最大移位量。
就当前的技术水准而言,实现最大移位量高于32位元(例如64位元)的桶状移位器并不困难。问题在于,移位量愈大,完成移位所需要的时间就愈长。在数据量较大的情况下,如果位元流包装模块15无法配合可变长度编码模块14产生位元流的速度,顺利完成位元流的接收、移位、合并、输出,位元流包装模块15很可能是拖慢影像编码器整体速度的瓶颈。
若藉由提高转换/量化模块12所采用的量化程度来减少后续数据量,虽可缓解对位元流包装模块15的速度要求,却会牺牲影像品质,并不是理想的对策。
发明内容
为解决上述问题,本发明提出一种新的数据包装装置及数据包装方法。藉由将一高移位量拆解为多个较小的移位量,分别在不同阶段达成,根据本发明的装置及方法能达到等同于具高移位能力的单一桶状移位器的移位效果。此外,藉由将位元流适当拆解为合并数据及残余数据,根据本发明的装置及方法在接收、处理长位元流时,平均而言比直接使用具高移位能力的单一桶状移位器更有效率。
根据本发明的一具体实施例为一种数据包装装置,用以持续接收一目前数据,包含N个桶状移位器、一控制模块及一包装模块。该控制模块用以根据一先前残余数据的长度决定一移位量,并控制该N个桶状移位器对一目前合并数据依序施以M次桶状移位,以达成该移位量。该包装模块用以合并该先前残余数据及经过该N个桶状移位器的该目前合并数据为一预备包装数据。该M次桶状移位各自的一移位量皆小于一门槛值,该门槛值与一周期长度相关。N为大于等于2的整数,M为小于等于N的一自然数。该目前合并数据为该目前数据的一部份或全部。
根据本发明的另一具体实施例为一种用以配合N个桶状移位器的数据包装方法。该方法首先执行一决定步骤,根据一先前残余数据的长度决定一第一目标移位量。随后,该方法,执行一控制步骤,控制该N个桶状移位器对一目前合并数据依序施以M次桶状移位,以达成该第一目标移位量。接着,该先前残余数据及经过该N个桶状移位器的该目前合并数据被合并。
关于本发明的优点与精神可以藉由以下发明详述及附图得到进一步的了解。
附图说明
图1为一影像编码器方块图。
图2(A)用以表示两个桶状移位器的容量;图2(B)用以说明目前通用的位元流包装机制。
图3为根据本发明的一具体实施例中的数据包装装置的方块图。
图4(A)~图4(D)用以说明根据本发明的控制模块如何控制两个桶状移位器对位元流施以桶状移位。
图5(A)为另一具体实施例中的数据包装装置的方块图;图5(B)用以表示数据包装装置中各储存区域的相对位置。
图6为根据本发明的数据包装装置在各周期中对位元流施以桶状移位的范例。
图7为根据本发明的另一具体实施例中的数据包装方法的流程图。
图8为根据本发明的又一具体实施例中的数据包装方法的流程图。
图9为根据本发明的更一具体实施例中的数据包装方法的流程图。
主要元件符号说明
11:像素区块输入模块12:转换/量化模块
13:游程长度编码模块14:可变长度编码模块
15:位元流包装模块15A、15B:桶状移位器
300、500:数据包装装置34、54:控制模块
321、322、521、522:合并桶状移位器
36、56:包装模块581、582:残余桶状移位器
S71~S79:流程步骤
具体实施方式
根据本发明的一具体实施例为包含N个合并桶状移位器的数据包装装置。N为大于等于2的整数。以下说明将以图3所示的N等于2的情况为例。本发明所属技术领域中具有通常知识者据此即可理解N大于2的情况。于实际应用中,根据本发明的数据包装装置可单独存在,亦可被整合各种具备影像编码能力的设备中,或是用以配合各种需要包装输出数据的系统(例如通讯装置)。
如图3所示,除了第一合并桶状移位器321、第二合并桶状移位器322之外,数据包装装置300还包含控制模块34及包装模块36。第一合并桶状移位器321、第二合并桶状移位器322和包装模块36以管道式(pipeline)结构串接;控制模块34负责依时脉信号控制其间的数据传递。于此实施例中,第一合并桶状移位器321、第二合并桶状移位器322能提供的最大移位量皆为32位元。此外,本范例中的包装模块36为一缓冲器,负责整合前端送来的位元流并输出长度为64位元的封包。须说明的是,最大移位量与封包长度不限于上述数字。举例而言,两桶状移位器的最大移位量可不相同,而控制模块34可被设计为控制包装模块36在各个周期输出长度不等的封包。
假设包装模块36中已存有长度为40位元的位元流a,且数据包装装置300随后收到长度为24位元的位元流b。根据位元流a的长度,控制模块34可判断应对位元流b施以移位量等于40位元的移位,才能使位元流b正确紧邻于位元流a右方。图4(A)~图4(D)用以说明控制模块34如何控制第一合并桶状移位器321、第二合并桶状移位器322在传递的过程中,对位元流b依序施以桶状移位,以达成40位元的目标移位量。
本范例中的第一合并桶状移位器321和第二合并桶状移位器322被设计为各自具有64位元的储存空间。图4(A)绘示位元流a已储存在包装模块36中,而桶状移位器321、322中尚未存放任何数据的情况。位元流a可被视为一预备包装数据,预备包装数据在可组成一完整的64位元封包前,暂存于包装模块36中。如图4(B)所示,控制模块34可在第一周期内先控制第一合并桶状移位器321接收位元流b,并且将位元流b向右挪移32位元。接着,在第二周期内,如图4(C)所示,控制模块34可控制第二合并桶状移位器322自第一合并桶状移位器321接收位元流b,并且将位元流b再次向右挪移8位元,使位元流b相对于储存空间的左侧的距离为40位元。随后,在第三周期内,如图4(D)所示,控制模块34可令包装模块36自第二合并桶状移位器322接收已经过移位的位元流b,直接将位元流b存入包装模块36右侧长度为24位元的空间。于一实施例中,包装模块36将位元流a及位元流b(即预备包装数据)组成完整的64位元封包后,并立即将该封包输出。
由上述说明可看出,数据包装装置300是将40位元的移位量拆解为32位元和8位元两个较小的移位量,交由两个桶状移位器于两个周期内分别达成。实际上,拆解方式不以上述数值为限,举例而言,拆解结果亦可为20位元和20位元,或是8位元和32位元。拆解移位量的好处在于,各个桶状移位器都不需要被设计为具有太高的单次移位能力(例如64位元)。相较于最大移位量为64位元的单一桶状移位器,最大移位量为32位元的桶状移位器的硬件复杂度较低、平均运作速度较快,并且能达到相同的移位效果。此外,采用数据包装装置300可省去另外设计具大移位量的桶状移位器的麻烦。
实际上,图4(A)~图4(D)中所呈现的位元流b可能是某个输入数据包装装置300的位元流的一部份或全部。举例而言,若在位元流a之后输入数据包装装置300的位元流的长度为32位元,位元流b可能是此位元流的前24位元,该位元流其余的8位元可先被暂存起来,留待组成下一个封包之用。易言之,控制模块34可根据预定封包大小(例如64位元)与先前已存入包装模块36中的数据长度(例如40位元)计算包装模块36还能容纳的数据量(例如24位元),再据此决定应由后续位元流中撷取一部份或全部做为位元流b。
根据本发明的另一实施例为包含N个合并桶状移位器和N个残余桶状移位器的数据包装装置。N为大于等于2的整数。以下说明将以图5(A)所示的N等于2的情况为例。本发明所属技术领域中具有通常知识者据此即可理解N大于2的情况。数据包装装置500包含第一合并桶状移位器521、第二合并桶状移位器522、第一残余桶状移位器581、第二残余桶状移位器582、控制模块54及包装模块56。以下将配合图6中呈现的范例来说明数据包装装置500的运作方式。为保持图面清晰,图6是以相对位置区别不同的元件,而未一一标示各个区块的号码,其相对位置关请参见图5(B)。
于图6所示的实施例中,第一合并桶状移位器521、第二合并桶状移位器522、第一残余桶状移位器581、第二残余桶状移位器582能提供的最大移位量皆为32位元,且各自具有64位元的储存空间。包装模块56亦具有64位元的储存空间,且被设定为在集满64位元的数据后立即输出一封包。
第一合并桶状移位器521和第一残余桶状移位器581可被视为负责第一阶段的移位;第二合并桶状移位器522和第二残余桶状移位器582可被视为负责第二阶段的移位。此实施例中的第一阶段移位、第二阶段移位和最后的包装模块56以管道式结构串接;控制模块54负责依时脉信号控制其间由左向右进行的数据传递。
首先,在第一周期中,长度为40位元的位元流a被输入数据包装装置500。由于在第一周期之前,图中的五个储存空间皆未存有任何先前数据,位元流a被标示为残余数据a-R。如图6所示,控制模块54将残余数据a-R存入第一残余桶状移位器581,并靠左放置。接着,在第二周期中,长度为44位元的位元流b被输入数据包装装置500。根据残余数据a-R的长度(40位元)和包装数据量(64位元)间的差异,控制模块54可决定一目标合并长度(64位元-40位元=24位元)。就第二周期的情况而言,该目标合并长度所对应的数据也就是将用以和位元流a-R组成封包的数据。由于位元流b的长度(44位元)大于目标合并长度(24位元),控制模块54将位元流b分割为两个部份:长度相等于目标合并长度(24位元)的合并数据b-M,以及长度相等于位元流b的长度减去目标合并长度(44位元-24位元=20位元)的残余数据b-R。
在第二周期中,残余数据a-R自第一残余桶状移位器581被传送至第二残余桶状移位器582,残余数据b-R被存入第一残余桶状移位器581,合并数据b-M则是被存入第一合并桶状移位器521。根据残余数据a-R的长度(40位元),控制模块54可判断,在合并数据b-M被送入包装模块56之前,应对合并数据b-M施以至少一次桶状移位,以达成相等于残余数据a-R长度(40位元)的向右移位,使合并数据b-M得与残余数据a-R正确串接。如图6所示,控制模块54先控制第一合并桶状移位器521接收合并数据b-M,并将合并数据b-M向右挪移32位元(最大移位量)。须说明的是,控制模块54亦控制第一残余桶状移位器581接收残余数据b-R并将残余数据b-R向左挪移相等于合并数据b-M的长度(24位元),使残余数据b-R的起始位置对齐第一残余桶状移位器581的最左端。如图所示,由于残余数据b-R原先位于合并数据b-M的右边,为了使残余数据b-R的起始位置对齐第一残余桶状移位器581的最左端,残余数据b-R必须向左挪移相等于合并数据b-M的长度。
在第三周期中,长度为52位元的位元流c被输入数据包装装置500。残余数据a-R自第二残余桶状移位器582被传送至包装模块56,残余数据b-R自第一残余桶状移位器581被传送至第二残余桶状移位器582,合并数据b-M则是自第一合并桶状移位器521被传送至第二合并桶状移位器522。如图6所示,控制模块54控制第二合并桶状移位器522接收合并数据b-M,并将合并数据b-M向右挪移8位元,使合并数据b-M的起始位置与第二合并桶状移位器522的最左端存在相等于残余数据a-R长度(40位元)的差异。
相似地,根据残余数据b-R的长度(20位元)和包装数据量(64位元)间的差异,控制模块54可决定一目标合并长度(44位元),并据此将位元流c分割为两个部份:长度相等于目标合并长度(44位元)的合并数据c-M,以及长度相等于位元流c的长度减去目标合并长度(52位元-44位元=8位元)的残余数据c-R。
根据残余数据b-R的长度(20位元),控制模块54可判断,在合并数据c-M被送入包装模块56之前,应对合并数据c-M施以至少一次桶状移位,以达成相等于残余数据b-R长度(20位元)的向右移位,使合并数据c-M得与残余数据b-R正确串接。如图6所示,控制模块54控制第一合并桶状移位器521在接收合并数据c-M的同时将合并数据c-M向右挪移20位元。有鉴于合并数据c-M的长度大于最大移位量32位元,控制模块54控制第一残余桶状移位器581接收残余数据c-R,并先将残余数据c-R向左挪移最大移位量(32位元),使残余数据c-R的起始位置朝向第一残余桶状移位器581的最左端移动。残余数据c-R与储存空间最左端的12位元差异(即合并数据c-M的长度44位元减去最大移位量32位元)可留待于第四周期消除。
在第四周期中,长度为20位元的位元流d被输入数据包装装置500。包装模块56中的位元流a-R和第二合并桶状移位器522中的合并数据b-M亦于此时被组成完整的64位元封包后立即输出。如图6所示,残余数据b-R自第二残余桶状移位器582被传送至包装模块56,残余数据c-R自第一残余桶状移位器581被传送至第二残余桶状移位器582,且合并数据c-M自第一合并桶状移位器521被传送至第二合并桶状移位器522。值得注意的是,控制模块54控制第二残余桶状移位器582接收残余数据c-R,并将残余数据c-R左移12位元,使残余数据c-R的起始位置为第二残余桶状移位器582的最左端。
根据残余数据c-R的长度(8位元)和包装数据量(64位元)间的差异,控制模块54可决定一目标合并长度(56位元),并据此判断不需要分割位元流d。位元流d的全部因此被标示为合并数据d-M。根据残余数据c-R的长度(8位元),控制模块54可判断,在合并数据d-M被送入包装模块56之前,应对合并数据d-M施以至少一次桶状移位,以达成相当于残余数据c-R长度(8位元)的向右移位,使合并数据d-M得与残余数据c-R正确串接。如图6所示,控制模块54控制第一合并桶状移位器521接收合并数据d-M,并将合并数据d-M向右挪移8位元。
在第五周期中,长度为48位元的位元流e被输入数据包装装置500。包装模块56中的位元流b-R和第二合并桶状移位器522中的合并数据c-M亦于此时被组成完整的64位元封包后输出。如图6所示,残余数据c-R自第二残余桶状移位器582被传送至包装模块56,且合并数据d-M自第一合并桶状移位器521被传送至第二合并桶状移位器522。根据残余数据c-R及合并数据d-M的长度总和(28位元)与包装数据量(64位元)间的差异,控制模块54可决定一目标合并长度(36位元),并据此将位元流e分割为两个部份:长度相等于目标合并长度(36位元)的合并数据e-M,以及长度相等于位元流e的长度减去目标合并长度(48位元-36位元=12位元)的残余数据e-R。
此时,包装模块56内储存有残余数据c-R及合并数据d-M。根据残余数据c-R及合并数据d-M的长度总和(28位元),控制模块54可判断,在合并数据e-M被送入包装模块56之前,应对合并数据e-M施以至少一次桶状移位,以达成相等于残余数据c-R长度及合并数据d-M的长度总和(28位元)的向右移位,使合并数据e-M得与合并数据d-M正确串接。如图6所示,控制模块54控制第一合并桶状移位器521接收合并数据e-M,并将合并数据e-M向右挪移28位元。有鉴于合并数据e-M的长度大于最大移位量32位元,控制模块54亦控制第一残余桶状移位器581接收残余数据e-R,将残余数据e-R向左挪移最大移位量(32位元),使残余数据e-R的起始位置向第一残余桶状移位器581的最左端移动。残余数据e-R与储存空间最左端的4位元差异(即合并数据e-M的长度36位元减去最大移位量32位元)可留待于第六周期消除。
在第六周期中,长度为16位元的位元流f被输入数据包装装置500。第二合并桶状移位器522中的合并数据d-M被传送至包装模块56;残余数据c-R及合并数据d-M尚无法组成完整的封包,因此继续被存放在包装模块56中。如图6所示,残余数据e-R自第一残余桶状移位器581被传送至第二残余桶状移位器582,且合并数据e-M自第一合并桶状移位器521被传送至第二合并桶状移位器522。值得注意的是,控制模块54控制第二残余桶状移位器582接收残余数据e-R,并将残余数据e-R左移4位元,使残余数据e-R的起始位置为第二残余桶状移位器582的最左端。
根据残余数据e-R的长度(12位元)和包装数据量(64位元)间的差异,控制模块54可决定一目标合并长度(52位元),并据此判断不需要分割位元流f。位元流f的全部因此被标示为合并数据f-M。根据残余数据e-R的长度(12位元),控制模块54可判断,在合并数据f-M被送入包装模块56之前,应对合并数据f-M施以至少一次桶状移位,以达成相当于残余数据e-R长度(12位元)的向右移位,使合并数据f-M得与残余数据e-R正确串接。如图6所示,控制模块54控制第一合并桶状移位器521接收合并数据d-M,并将合并数据f-M向右挪移12位元。
实务上,前述位元流a~f可能各自是连续多个位元流的组合,也可能是一个较长的位元流。针对每一周期新输入的位元流,控制模块54首先会判断是否需将目前的数据分割为一合并数据与一残余数据。接着,针对合并数据,控制模块54根据一先前残余数据的长度决定一第一目标移位量,并控制该N个合并桶状移位器对目前的合并数据依序施以M次桶状移位,以达成该第一目标移位量。M为小于等于N的自然数;若完全没有先前残余数据,M即为零。
另一方面,针对残余数据,控制模块54则是会根据目前的合并数据长度决定一第二目标移位量,并控制该N个残余桶状移位器对目前的残余数据依序施以P次桶状移位,以达成该第二目标移位量,使目前的残余数据的起始位置在被送进包装模块56前对齐储存空间最左侧。P为小于等于N的自然数。
须说明的是,该M次桶状移位和P次桶状移位各自的一最大移位量皆小于一门槛值(例如不高于32位元)。此门槛值与一周期长度相关。更明确地说,该等最大移位量被设计为确保各桶状移位器皆能在一特定周期中完成其移位工作。以图1所绘示的影像编码架构为例,假设可变长度编码模块会在一特定周期内产生两个提供至位元流包装模块的位元流,上述最大移位量可被设计为小于等于各桶状移位器能在该特定周期内顺利完成的移位量。如此一来,即使可变长度编码模块在每个周期内输出两个位元流或是一个较长的位元流,根据本发明的数据包装装置还是可以顺利接收、处理,不会造成前端电路必须等待数据包装装置的情况。对于重视流通量(throughput)的系统(例如高画质影像编码系统)来说,采用数据包装装置500可避免数据包装程序成为整个数据处理流程的速度瓶颈。
由以上说明可看出,无论是针对合并数据或残余数据,数据包装装置500都是将高于一特定位元量(32位元)的移位量拆解为两个移位量,在两个移位阶段中分别达成。实际上,拆解移位量及移位阶段的数量不以前述范例列举的数值为限。针对更长的数据,根据本发明的数据包装装置亦可进一步包含更多(例如三个或四个)移位阶段或在各阶段采用较大的储存空间。此外,根据本发明的概念亦适用于输入位元流的长度为固定的情况。前述实施例虽以左侧为起始点的储存空间为例,但根据本发明的概念亦可应用于起始点在其他位置(例如右侧)的储存空间。
根据本发明的另一具体实施例为如图7所示的数据包装方法。此方法用以配合N个合并桶状移位器;N为大于等于2的整数。首先,步骤S71为根据一先前残余数据的长度为一目前合并数据决定一第一目标移位量。接着,步骤S72为控制该N个合并桶状移位器对该目前合并数据依序施以M次桶状移位,以达成该第一目标移位量,其中M为小于等于N的自然数。随后,步骤S73为合并该先前残余数据及经过该N个合并桶状移位器的该目前合并数据。
如图8所示,根据本发明的数据包装方法在步骤S71之前可进一步包含步骤S74~步骤S77。步骤S74为计算该先前残余数据的长度与一包装数据量间的差异,做为一目标合并长度。步骤S75为判断该目前数据的长度是否小于等于该目标合并长度。若步骤S75的判断结果为是,步骤S76被执行,以选择该目前数据的全部做为该目前合并数据。相对地,若步骤S75的判断结果为否,步骤S77被执行,亦即选择该目前数据的一部份做为该目前合并数据,且令该目前合并数据的长度等于该目标合并长度。
如图9所示,在另一实施例中,若步骤S75的判断结果为否,步骤S77除该目前数据的一部份做为该目前合并数据,更进一步选择该目前数据中除该目前合并数据外的部分为一目前残余数据。在步骤S77完成后,除了步骤S71~步骤S73之外,步骤S78~步骤S79也会被执行。步骤S78为根据该目前合并数据的长度为该目前残余数据决定一第二目标移位量。步骤S79则是控制该N个残余桶状移位器对该目前残余数据依序施以P次桶状移位,以达成该第二目标移位量。
须说明的是,图7~图9所示的数据包装方法亦可选择性地纳入先前讨论数据包装装置时介绍的多种变化型态,其细节不再赘述。
如上所述,本发明提出一种新的数据包装装置及数据包装方法。藉由将一高移位量拆解为多个较小的移位量,分别在不同阶段达成,根据本发明的装置及方法能达到等同于具高移位能力的单一桶状移位器的移位效果。此外,藉由将位元流适当拆解为合并数据及残余数据,根据本发明的装置及方法在接收、处理长位元流时,平均而言比直接使用具高移位能力的单一桶状移位器更有效率。
藉由以上较佳具体实施例的详述,希望能更加清楚描述本发明的特征与精神,而并非以上述所揭示的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的专利范围的范畴内。
Claims (10)
1.一种数据包装装置,接收一目前数据,包含:
N个合并桶状移位器,其中N为大于等于2的一整数;
一控制模块,用以根据一先前残余数据的长度决定一第一目标移位量,并控制该N个合并桶状移位器对一目前合并数据依序施以M次桶状移位,以达成该第一目标移位量,其中M为小于等于N的一自然数;以及
一包装模块,用以合并该先前残余数据及经过该N个合并桶状移位器的该目前合并数据为一预备包装数据;
其中该M次桶状移位各自的一移位量皆小于一门槛值,该门槛值与一周期长度相关;该目前合并数据为该目前数据的一部份或全部。
2.如权利要求1所述的数据包装装置,其特征在于,该N个合并桶状移位器以管道式结构串接,该包装模块还于该预备包装数据的长度等于一预设封包长度时,输出该预备包装数据;于该预备包装数据小于该预设封包长度时,更新该预备包装数据为该先前残余数据。
3.如权利要求1所述的数据包装装置,其特征在于,若该目标移位量大于与一周期相关的一门槛值,则M大于或等于2,且每一次该桶状移位的一移位量被设定为小于或等于该门槛值。
4.如权利要求1所述的数据包装装置,其特征在于,该先前残余数据的长度与一包装数据量间的差异为一目标合并长度;该控制模块还用以判断该目前数据的长度是否小于等于该目标合并长度,若判断结果为是,该控制模块选择该目前数据的全部做为该目前合并数据,若判断结果为否,该控制模块选择该目前数据的一部份做为该目前合并数据,且令该目前合并数据的长度等于该目标合并长度。
5.如权利要求4所述的数据包装装置,其特征在于,若判断结果为否,该控制模块还选择该目前数据中除该目前合并数据外的部分为一目前残余数据;该数据包装装置进一步包含:
N个残余桶状移位器;
其中该控制模块根据该目前合并数据的长度决定一第二目标移位量,并控制该N个残余桶状移位器对该目前残余数据依序施以P次桶状移位,以达成该第二目标移位量,其中P为小于等于N的一自然数;该P次桶状移位各自的一最大移位量皆小于该门槛值。
6.一种数据包装方法,用以接收一目前数据配合N个合并桶状移位器运作,N为大于等于2的一整数,该方法包含:
(a)根据一先前残余数据的长度决定一第一目标移位量;
(b)控制该N个合并桶状移位器对一目前合并数据依序施以M次桶状移位,以达成该第一目标移位量,其中M为小于等于N的一自然数;以及
(c)合并该先前残余数据及经过该N个合并桶状移位器的该目前合并数据为一预备包装数据;
其中该M次桶状移位各自的一移位量皆小于一门槛值,该门槛值与一周期长度相关;该目前合并数据为该目前数据的一部份或全部。
7.如权利要求6所述的数据包装方法,其特征在于,该N个合并桶状移位器以管道式结构串接,还包含
在该预备包装数据的长度等于一预设封包长度时,输出该预备包装数据;以及
于该预备包装数据小于该预设封包长度时,更新该预备包装数据为该先前残余数据。
8.如权利要求6所述的数据包装方法,其特征在于,若该目标移位量大于与一周期相关的一门槛值,则M大于或等于2,且每一次该桶状移位的一移位量被设定为小于或等于该门槛值。
9.如权利要求6所述的数据包装方法,其特征在于,于步骤(a)的前一步包含:
计算该先前残余数据的长度与一包装数据量间的差异,做为一目标合并长度;
判断该目前数据的长度是否小于等于该目标合并长度;
若判断结果为是,选择该目前数据的全部做为该目前合并数据;以及
若判断结果为否,选择该目前数据的一部份做为该目前合并数据,且令该目前合并数据的长度等于该目标合并长度。
10.如权利要求9所述的数据包装方法,其特征在一地,进一步配合N个残余桶状移位器且包含:
若判断结果为否,选择该目前数据中除该目前合并数据外的部分为一目前残余数据;
根据该目前合并数据的长度决定一第二目标移位量;以及
控制该N个残余桶状移位器对该目前残余数据依序施以P次桶状移位,以达成该第二目标移位量,其中P为小于等于N的一自然数;该P次桶状移位各自的一最大移位量皆小于该门槛值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210027267.0A CN103247344B (zh) | 2012-02-08 | 2012-02-08 | 数据包装装置及数据包装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210027267.0A CN103247344B (zh) | 2012-02-08 | 2012-02-08 | 数据包装装置及数据包装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103247344A true CN103247344A (zh) | 2013-08-14 |
CN103247344B CN103247344B (zh) | 2016-03-16 |
Family
ID=48926814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210027267.0A Expired - Fee Related CN103247344B (zh) | 2012-02-08 | 2012-02-08 | 数据包装装置及数据包装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103247344B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108832935A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种rle算法实现方法、系统、设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339077A (en) * | 1992-08-18 | 1994-08-16 | Idaho Research Foundation, Inc. | Comma code generator |
CN101394550A (zh) * | 2007-09-17 | 2009-03-25 | 华为技术有限公司 | 视频数据的打包方法及装置 |
US20100124308A1 (en) * | 2008-11-16 | 2010-05-20 | Chuan-Hua Chang | Method of Handling Successive Bitstream Extraction and Packing and Related Device |
CN101933327A (zh) * | 2007-10-26 | 2010-12-29 | 富士胶片株式会社 | 数据压缩装置、数据压缩程序及摄像装置 |
-
2012
- 2012-02-08 CN CN201210027267.0A patent/CN103247344B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339077A (en) * | 1992-08-18 | 1994-08-16 | Idaho Research Foundation, Inc. | Comma code generator |
CN101394550A (zh) * | 2007-09-17 | 2009-03-25 | 华为技术有限公司 | 视频数据的打包方法及装置 |
CN101933327A (zh) * | 2007-10-26 | 2010-12-29 | 富士胶片株式会社 | 数据压缩装置、数据压缩程序及摄像装置 |
US20100124308A1 (en) * | 2008-11-16 | 2010-05-20 | Chuan-Hua Chang | Method of Handling Successive Bitstream Extraction and Packing and Related Device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108832935A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种rle算法实现方法、系统、设备及计算机存储介质 |
CN108832935B (zh) * | 2018-05-31 | 2022-05-10 | 郑州云海信息技术有限公司 | 一种rle算法实现方法、系统、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103247344B (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102670479B1 (ko) | 콘볼루션 효율을 개선하기 위한 방법들, 시스템들, 및 장치 | |
CN102984517B (zh) | 视频数据压缩和解压缩的方法、装置、设备和系统 | |
CN103609117B (zh) | 编码和解码图像的方法及装置 | |
CN101849416B (zh) | 图像处理方法和系统 | |
US20050140529A1 (en) | Variable length coding apparatus and variable length coding method | |
KR970019655A (ko) | 부호화 방법, 부호화 장치, 웨이블릿 변환 장치 및 웨이블릿 역 변환 장치 | |
CN109618157A (zh) | 一种视频显示流压缩编码的硬件实现系统及方法 | |
CN103402063B (zh) | Cmos图像传感器及其图像数据的传输方法 | |
CN107396112A (zh) | 一种编码方法及装置、计算机装置、可读存储介质 | |
US7515761B2 (en) | Encoding device and method | |
CN104952037A (zh) | 图像文件缩放方法与系统 | |
RU2003130965A (ru) | Способ уплотнения и распаковки видеоданных | |
CN103248951A (zh) | 一种向视频中添加滚屏信息的系统及方法 | |
CN103247344A (zh) | 数据包装装置及数据包装方法 | |
CN102801974B (zh) | 基于cabac的图像压缩熵编码器 | |
CN102831576B (zh) | 一种视频图像缩放方法及系统 | |
CN102143361A (zh) | 一种视频编码方法和装置 | |
CN101778280B (zh) | 一种基于avs运动补偿亮度插值运算的电路及方法 | |
US9160363B2 (en) | Run length encoding with non-sequential input | |
CN104113759B (zh) | 视频系统、视频帧缓存再压缩/解压缩方法与装置 | |
CN101399978B (zh) | 硬件解码器中参考帧数据的读取方法及其装置 | |
CN103237211B (zh) | 一种基于fpga的视频亚像素亮度插值的方法及其装置 | |
CN101742320A (zh) | 图像处理方法 | |
CN104243983A (zh) | 图像压缩电路、图像压缩方法和传输系统 | |
CN103810671A (zh) | Rgb模式图像的色彩拉伸方法和系统 |
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: 20160316 Termination date: 20190208 |
|
CF01 | Termination of patent right due to non-payment of annual fee |