CN107918533B - 一种打包模块和打包方法 - Google Patents
一种打包模块和打包方法 Download PDFInfo
- Publication number
- CN107918533B CN107918533B CN201610885469.7A CN201610885469A CN107918533B CN 107918533 B CN107918533 B CN 107918533B CN 201610885469 A CN201610885469 A CN 201610885469A CN 107918533 B CN107918533 B CN 107918533B
- Authority
- CN
- China
- Prior art keywords
- pixel
- shift
- port
- signal
- pixels
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
本发明实施例公开了一种打包模块和打包方法,涉及显示领域,通过实现iSP controller能够支持多像素并行输入,来解决现有技术中采用单像素输入方式导致的对器件的工作频率要求过高的问题。该打包模块包括:像素处理单元,用于按照时钟周期依次输入一像素行的多个第一像素组,每个第一像素组包括在一个时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的像素中确定每个端口的首像素,并以端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完;将端口的第二像素组按照时钟周期依次输出至输入缓存处理单元;输入缓存处理单元,用于将同一像素行的各个端口的第二像素组存储于像素行的缓存中。
Description
技术领域
本发明涉及显示领域,尤其涉及一种打包模块和打包方法。
背景技术
在显示领域,尤其对于液晶显示面板,越来越高分辨率的要求,一步一步将常规接口对显示面板的驱动能力推向极限。在这个背景下,迷你低电压差分信号(mini LVDS)接口应运而生。相较于以前的常规接口来说,mini LVDS接口极大地提高了显示面板的分辨率,满足了显示面板对高分辨率的要求。前几年对mini LVDS接口的使用相当广泛,但是,由于mini LVDS接口在电路板上占用面积较大,而且随着电子显示产品价格的逐年降低,各厂家不得不通过不断减小电路板面积,来降低生产成本,保证利润空间。因此,集成数据流协议(integrated-Stream Protocol,简称iSP)接口产生了,相对于mini LVDS接口,iSP接口能够使用最少的接口信号实现对大分辨率的视频传输,很大程度上减少了电路板的面积,降低了生产成本。
随着显示分辨率的不断增加,为满足对于高分辨率的大数据量处理,视频处理芯片中多采用多像素并行处理的方式。iSP接口数据的传输是通过iSP接口控制器(iSPcontroller)控制的。而iSP controller是采用单像素输入的方式,这与视频处理芯片的多像素并行处理的方式不匹配。因此,参考图1所示,设计中往往需要单独增加一个多像素转单像素的转化模块才能适配现有的iSP controller的单像素输入格式。
但是单像素输入也就意味着输入一个像素就需要一个时钟,因此会要求iSPcontroller的时钟频率很高,而高时钟频率不仅会导致iSP controller功耗的增加,也会相应提高对iSP controller器件的特性要求。
发明内容
本发明的实施例提供一种打包模块和打包方法,通过实现iSP controller能够支持多像素并行输入,来解决现有iSP controller采用单像素输入方式导致的对iSPcontroller的工作频率要求过高的问题,进而避免了使iSP controller的功耗增加和对iSP controller器件的特性要求提高的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种打包模块,包括:
像素处理单元,用于按照时钟周期依次输入一像素行的多个第一像素组,每个所述第一像素组包括在一个所述时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的所述像素中确定每个端口的首像素,并以所述端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完;将所述端口的第二像素组按照时钟周期依次输出至输入缓存处理单元;所述输入缓存处理单元,用于将同一像素行的各个端口的第二像素组存储于所述像素行的缓存中;其中,N=2n,n为正整数。
第二方面,本发明实施例提供了一种打包方法,包括:
按照时钟周期依次输入一像素行的多个第一像素组,每个所述第一像素组包括在一个所述时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的所述像素中确定每个端口的首像素,并以所述端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完;将同一像素行的各个端口的第二像素组存储于所述像素行的缓存中;其中,N=2n,n为正整数。
本发明实施例提供了一种打包模块和打包方法,像素处理单元,用于按照时钟周期依次输入一像素行的多个第一像素组,每个第一像素组包括在一个时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的像素中确定每个端口的首像素,并以端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完。将端口的第二像素组按照时钟周期依次输出至输入缓存处理单元。这样则实现了iSP controller能够支持N像素并行输入,相比于在iSP controller中直接应用现有技术的并行输入方法,可能会导致某些端口像素输入错误的问题,本发明实施例保证了每个端口的首像素是正确的,每个端口的像素能够全部输出到输入缓存处理单元,即保证了每个端口的数据都能正确输出。输入缓存处理单元用于将同一像素行的各个端口的第二像素组存储于所述像素行的缓存中。因此通过对iSP controller的打包模块的改进,即增加多像素并行输入功能的打包模块,使得iSP controller能够支持多像素的并行输入,解决了现有iSP controller采用单像素输入方式导致的对iSP controller的工作频率要求过高的问题,进而避免了使iSPcontroller的功耗增加和对iSP controller器件的特性要求提高的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种常用的多像素转单像素输入iSP controller的示意图;
图2为本发明实施例提供的iSP controller架构示意图;
图3为本发明实施例提供的常用的数据打包输入缓存处理单元的电路图;
图4为本发明实施例提供的多像素输入iSP controller的示意图;
图5为本发明实施例提供的打包模块的框图之一;
图6为本发明实施例提供的数据示意图之一;
图7为本发明实施例提供的打包模块的框图之二;
图8为本发明实施例提供的数据示意图之二;
图9为本发明实施例提供的一种移位检测部的电路图;
图10为本发明实施例提供的一种移位输出控制部和重组子单元的电路图;
图11为本发明实施例提供的数据示意图之三;
图12为本发明实施例提供的打包方法的流程图。
附图标记:
1-像素处理单元;11-控制子单元;111-边界检测部,112-移位检测部,113-第一移位输出控制部,1131-第一移位输出控制部的第一重组部,1132-第一移位输出控制部的第二重组部,114-第二移位输出控制部,115-输出选择部;12-第一重组子单元,121-第一重组子单元的第一重组部,122-第一重组子单元的第二重组部;13-第二重组子单元;2-输入缓存处理单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。另外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
iSP controller架构示意图如图2所示,从上到下可分为三条通路,一条为源驱动配置(source driver configuration,简称SD_CFG)通路,第二条为RGB数据通路,第三条为控制通路。
SD_CFG通路中,source driver的寄存器设置(register setting)信息经过配置信息打包模块(Pk_config)打包后,经过8B9B编码模块(8B9B encode)模块进行8B9B编码,然后并行输出发送给物理层的芯片(PHY)。
RGB数据通路中,输入的RGB数据经过打包模块(Packer)打包后,通过加扰模块(scrambler)进行数据加扰,然后经过8B9B encode模块进行8B9B编码,最后并行发送给PHY。
控制通路是iSP controller的输出控制通路(Output control通路),用于控制输出控制信息或者图像信息。将命令代码(Command code)输入给输出控制模块(Outputcontrol);将源驱动锁住信号(Source driver LOCK,简称SDLOCK)经链接检测模块输入Output control。当前iSP controller存在的缺陷的设计部分位于RGB数据通路的Packer模块,因此本发明便是针对该模块进行的设计发明。
在现有技术中,RGB数据通路中的Packer模块的输入是单像素输入,如图3所示,首先介绍de、24个srams(Static Random Access Memory,简称为sram,静态随机存取存储器)、Pixel_cnt(像素计数单元)、line_cnt(行计数单元)的作用。
de是像素指示信号,指示当前对应输入的像素是否是有效像素。
24个srams的作用:由于目前iSP controller支持输出port类型最大为24port,也就是需要24路数据流并行输出,因此需要24个srams来进行分port的存储,后续处理和输出才能够保证24路同时输出。每个port的像素可以用一个或多个srams来存储,每个sram只能存储一个port的像素,即当一个port的像素存储完后,下一个port的像素要存到一个新的sram里。
Line_cnt的作用:由于存储需要两行的line_buffer(每块line_buffer包含24个srams),因此需要通过line_cnt对当前输入的行数进行计数,知道当前进入的是奇数行还是偶数行,如果是奇数行则存入第一块line_buffer,如果是偶数行则存入第二块line_buffer,反之一样,也就是让相邻的两行要存到不同的line_buffer里。实现行缓存的功能,防止在line_buffer里出现第二行数据把第一行数据冲掉的情况。
Pixel_cnt的作用:由于像素是一个一个串行输入的,因此需要对当前进来的像素数进行计数以此来确定当前进来的像素是属于哪个port的,从而把这个像素存储到对应的sram里,例如每个port像素数是341,那么pixel_cnt每加够341个像素,下一个像素就存到下一个port对应的sram里。
因此,现有技术Packer模块的工作原理是对输入的RGB像素进行计数,并根据配置信息将相应个数的RGB数据存入对应port的sram中,然后同时将各port中的像素读出,进行数据的重新打包和处理。当需要处理的图像分辨率达到4K时,单像素处理的时钟频率需要达到2GHz左右,如此高的时钟频率对于该频率下的数字电路器件特性需要很高的要求,并且在以后的实际应用中也可能会造成较大动态功耗。
解决上述现有技术缺陷的重点在于,对多像素并行输入时的port重新打包的处理,一旦实现了分port的重新打包,后续处理只需要在原有单路像素处理的基础上扩展为4路并行处理即可。
本发明实施例通过对iSP controller的改进,即增加多像素并行输入功能模块,使得iSP controller能够支持多像素的并行输入,参考图4所示。这样就无需额外设置多转单的转化模块,并且也能解决现有对iSP controller的工作频率要求过高的问题,以及避免iSP controller功耗增加。
实施例一
参考图5所示,本发明实施例提供了一种打包模块,包括:像素处理单元1,输入缓存处理单元2。
像素处理单元1的输入RGB_i与输出RGB_o均是N像素并行输入或输出,但是是不同的像素组合,即实现了port的重新打包。如果不重新打包的话,显示屏上的图像就会有像素重复出现,图像就错了。
示例的,参考图6所示,N=4,每个port有9个像素。对于port1来说进来的数据是8,9,10,11,出去的数据也是8,9,10,11,对应传送到显示屏上时,第一个port已经把0,1,2,3,4,5,6,7,8这9个像素打到显示屏上了,port1原本应该把9,10,11,12打到屏上,但是由于没有重新打包,port1打到显示屏上的像素就变成了8,9,10,11。于是显示屏上的图像就会出现有像素重复了,并且是几乎每两个port的分界处都会出现重复的像素,图像就错了。
像素处理单元1,用于按照时钟周期T1依次输入一像素行的多个第一像素组,每个第一像素组包括在一个时钟周期并行输入的N个像素。其中,N=2n,n为正整数。由于当前对于高分辨率设计处理多采用4像素并行输入输出的方式,因此在本发明实施例中以n=2,N=4,即一个像素组中有4个像素为例说明,当然,n还可以是1或2等正整数。
像素处理单元1还用于,根据预设的端口(port)像素数,从输入的像素中确定每个port的首像素,并以port的首像素起每N个像素组成一个第二像素组,直至该port的像素重组完。将每个port的第二像素组按照时钟周期T2依次输出至输入缓存处理单元2。T2≥T1,即时钟周期T2在时钟周期T1之后,具体情况根据实际需要设置,在此不做限定。预设的端口像素数是指预先设定的每个port的像素个数,一般是每个port的最大像素个数,记为Q,其中,Q=N或Q≥2N,在实际中每个port的像素个数一般为341(每行最后一个port的像素个数可能小于或等于341),当然也可以是其他满足条件的合理值。为了便于描述,在本发明实施例中仅以Q=9为例具体说明。
示例的,参考图6所示,N=4,Q=9,假设一像素行有1024个像素,也可以是1440、2048、1600等其他值。例如0,1,2,3为一个时钟周期并行输入的4个像素4,5,6,7为一个时钟周期并行输入的4个像素,以此类推,图中为并行输入像素处理单元1的11个时钟周期的第一像素组。可知Port0的首像素为0,有效像素为0,1,2,3,4,5,6,7,8;Port1的首像素为9,有效像素为9,10,11,12,13,14,15,16,17;Port2的首像素为18,有效像素为18,19,20,21,22,23,24,25,26;Port3的首像素为27,有效像素为27,28,29,30,31,32,33,34,35。但是由于是4像素并行输入输出的方式,因此重组后输出至输入缓存处理单元2的Port0的第二像素组为0,1,2,3、4,5,6,7和8,9,10,11;Port1的第二像素组为9,10,11,12、13,14,15,16和8,9, 10,11;以此类推,其他Port的第二像素组也是这样输出的,不再一一列举。这样则可以保证每一像素行的像素能正确输出到显示屏上。若Q=341,则每个port中有341个像素。
输入缓存处理单元2,用于将同一像素行的各个port的第二像素组存储于像素行的缓存中。
可选的,参考图5所示,像素处理单元1包括:控制子单元11、第一重组子单元12、第二重组子单元13。需要说明的是:在本发明实施例中,为了便于描述,重组子单元指的是第一重组子单元12和第二重组子单元13。
参考图6所示,由于两个port会有有效数据处于同一个时钟周期的情况,例如port0的有效像素9与port1的有效像素10,11,12都在第3个时钟周期,所以会存在port0和port1同时工作的状态,因此至少需要两个重组子单元来支持同时工作的情况。每个重组子单元用于缓存按照时钟周期T1依次输入一像素行的第一像素组;控制子单元11用于控制重组子单元对缓存的第一像素组进行重组,得到重组子单元的有效port的第二像素组;其中,偶数port作为第一重组子单元12的有效port,奇数端口作为第二重组子单元13的有效port。例如port0,port2,port4,......,port(2k)是第一重组子单元12的有效port;port1,port3,port5,......,port(2k+1)是第二重组子单元13的有效port,其中,k=0,1,2,3,...。
控制子单元11还用于控制两个重组子单元交替输出各自有效port的第二像素组。
进一步的,控制子单元11用于分别向重组子单元输出重组子单元对应的有效指示信号拉高后的移位指示信号,其中,有效指示信号在其对应的重组子单元的有效port的首像素所在时钟周期开始时拉高,且在其中一个有效指示信号拉高一个时钟周期后,将另一个有效指示信号拉低。
每个重组子单元对应一个有效指示信号,且每个重组子单元对应的有效指示信号不同。即参考图6所示,第一重组子单元12对应着有效指示信号DE_12,第二重组子单元13对应着有效指示信号DE_13。由控制子单元11得到的DE_12和DE_13指示当前的时钟周期的像素属于偶数port还是奇数port(指示当前像素属于相邻port中的哪一个port)。也就是说DE_12和DE_13分别指示重组子单元缓存的第一像素组是否包含该重组子单元有效port的像素,若有效指示信号为1,则表示包含;若有效指示信号为0,则表示不包含。DE_12=1用于指示当前的时钟周期包含偶数port的有效像素,DE_13=1用于指示当前的时钟周期包含奇数port的有效像素。当一个时钟周期内包含奇数port的有效像素,也包含偶数port的像素,此时两个有效指示信号DE_12和DE_13都为1;但优选的,为了便于控制且避免有效像素丢失的发生,当一port的首像素为一个时钟周期的第一个像素时,在此时钟周期内,两个有效指示信号DE_12和DE_13也都为1。
示例的,参考图6所示,port1的首像素为第3个时钟周期的第2个像素9,则将有效指示信号DE_13在第3个时钟周期时拉高,且在DE_13拉高一个时钟周期后,将有效指示信号DE_12拉低。在第3个时钟周期至第5个时钟周期DE_13始终为1,表示这三个时钟周期输入的第一像素组都包含第二重组子单元13的port1的像素。又port4的首像素为第10个时钟周期的第1个像素36,此时第10个时钟周期虽然不包含port3的像素,但DE_13也为1。
参考图6所示,由于每个port的首像素在第一像素组中的位置不同,如port0的首像素在第1个时钟周期的第一个像素,port1的首像素在第3个时钟周期的第二个像素,port2的首像素在第5个时钟周期的第三个像素,port3的首像素在第7个时钟周期的第四个像素。则后一个port会出现采到属于前一个port像素的情况,而这些像素对于后一个port来说是无效的,因此需要将这些像素去掉。例如,如果将8,9,10,11按照一个第二像素组输出给port1,则其中的像素8对于port1来说是无效的,因此需要将8去掉,也就是说要将第3个和第4个时钟周期输入的第一像素组进行移位获得port1正确的第二像素组9,10,11,12。
移位指示信号用于指示第m个port的像素所在的第一像素组需要进行移位的像素个数p,p=s*(m-1),s为一像素行的第2个port需要移位的像素个数,s=0,1,2,3,...,(N-1);m=1,2,3...。本领域应该理解,m为正整数,其上限由一像素行的port总数决定。
对于任一像素行来说,如果每个port的首像素都是其对应时钟周期的首像素,则所有port的像素都不需要移位,移位个数为0;如果有port的首像素不是其对应时钟周期的首像素,则这些port的像素需要移位。本发明实施例对于上述两种情况都适用。下面对一像素行的一些port的像素需要移位的情况加以说明。该像素行的第1个port的首像素是其对应时钟周期的首像素,因此第1个port的像素所在的像素组是不需要移位的。但该像素行的首像素不是其对应时钟周期的首像素,因此第2个port的像素所在的像素组是需要移位的,假设第2个port的像素所在的像素组需要移位的像素个数为s。那么,同理对于相邻的两个port来说,把前1个port看作第1个port,后1个port看作第2个port,后一个port的像素所在的像素组相对于前一个port的像素所在的像素组需要移位的像素个数都为s。因此,对于任一像素行,第1个port的像素所在的像素组不需要移位,第2个port的像素所在的像素组需要移位的像素个数为p=s,第3个port的像素所在的像素组需要移位的像素个数为p=2s,以此类推,第m个port的像素所在的像素组需要进行移位的像素个数p=s*(m-1)。
移位指示信号可以是指示第一像素组右移的像素个数p右,也可以是指示第一像素组需要左移的像素个数p左,对于同一个port来说,p右+p左=mN。参考图6所示,对于port1来说,则可以将第3个时钟周期的第一像素组右移3个像素,也可以将第3个时钟周期的第一像素组左移1个像素;对于port2来说,则可以将第5个时钟周期的第一像素组右移6个像素,也可以将第5个时钟周期的第一像素组左移2个像素;以此类推。在本发明的下述实施例中是以右移为例来具体说明该打包模块的。
重组子单元用于按照输入的移位指示信号对缓存的第一像素组进行移位,以得到其有效port的第二像素组。控制子单元11还用于按照输入给重组子单元的移位指示信号,对缓存的与重组子单元对应的有效指示信号进行移位;并当一移位后的有效指示信号的上升沿到来时,输出该有效指示信号对应的重组子单元得到的第二像素组。
在本发明实施例中,要对第一像素组和该第一像素组对应的有效指示信号同时按照输入给重组子单元的移位指示信号进行移位,然后得到第二像素组和该第二像素组对应的有效指示信号。移位后的该第二像素组对应的有效指示信号指示该第二像素组是否属于对应重组子单元有效port的像素组。有效指示信号为1表示属于,为0表示不属于。且当移位后的有效指示信号的上升沿(有效指示信号由0到1)到来时,能够准确输出对应的重组子单元有效port的第二像素组。
可选的,参考图7所示,控制子单元11包括:边界检测部111、移位检测部112、第一移位输出控制部113、第二移位输出控制部114、输出选择部115。
边界检测部111,可以命名为portedge_detected,用于根据预设的port像素数Q、以及N确定像素行的边界时钟周期,边界时钟周期为各port的首像素所在的时钟周期。
示例的,一个port(可以理解为通道)传输9个像素,由于本实施例的前端是4个像素并行输入,那么相邻port边界(每个port的首像素所在的位置,当然也可以用末像素所在的位置)如图6所示(图中圆圈标注部分)。例如,0,1,2,3为同时并行输入的4个像素,4,5,6,7为同时并行输入的4个像素,以此类推。这些像素都是按顺序存放的,因此不存在边界,边界检测部111的功能就是在这一串像素中找出相邻port的边界,根据边界将每9个像素放到相应的port中。其中,像素9就是一个边界,0,1,2,3,4,5,6,7,8这9个像素属于port0中;像素17又是一个边界,9,10,11,12,13,14,15,16,17这9个像素属于port1中;以此类推。对在时钟周期2内同时输入的像素8,9,10,11来说,由于检测到9为边界像素,因此该时钟周期即为边界时钟周期,在该周期内,像素8属于port0,而9,10,11则属于port1,因此边界时钟周期内存在分属于两个port的像素的情况。对在时钟周期9内同时输入的像素36,37,38,39来说,由于检测到36为边界像素,因此该时钟周期即为边界时钟周期,在该周期内,没有属于port3的像素,36,37,38,39都属于port4,因此边界时钟周期内也存在只属于一个port的像素的情况。
边界检测部111是为了检测相邻两个port之间边界处的像素点的位置。当单像素输入时,根据配置每个port的像素个数可以通过对像素指示信号de计数得到准确的边界位置,而本发明需要支持N个像素并行输入,因此在进行边界检测时,需要通过计数确定边界点出现的时钟周期。针对一像素行,通过分别对每个port的像素个数进行累加,得到每个port的最后一个像素的位置,加1则得到下一个port的首像素。需要说明的是:在本发明实施例中是利用得到的每个port的最后一个像素的位置计算相邻port的边界时钟周期的,当然本领域技术人员也可以利用得到的每个port的首像素的位置计算相邻port的边界时钟周期,在此不再赘述。
由于在同一时钟周期中会有N个像素同时传输进来,因此当de为有效状态(de=1)时,对de进行计数,每来一个时钟周期计数器加1,对应着有效像素数加N。当de为无效状态(de=0)时,对de的计数清零,对应着有效像素数清零。根据1比N的对应关系,将累加得到的第m个port的最后一个像素的位置(第mQ个像素)进行截掉低2bit的处理(即除N向下取整的处理)之后,得到的位置信息与计数器计数比为1∶1,此时就可以直接通过检测计数器是否到上述处理后的位置信息所在位置,来指示是否是两个port之间的边界时钟周期。
需要说明的是:在本发明实施例中port0为第一个port,port1为第二个port,以此类推。也就是说本发明实施例中是从port0开始计数的,时钟周期也是从0开始计数的。当然,本领域人员也可以将port和时钟周期从其他数字开始计数,例如1,2,3等其他数。
示例的,参考图6所示,port0像素数为9,port1像素数也为9,要得到port1和port2之间的边界时钟周期,也就是将第2个port的最后一个像素所在的时钟周期,那么像素个数为2×9=18,将18的低2bit直接截掉后为4,因此对de计数的计数器只需要计5个周期也就是当计到4(当“0”为第一有效值时为4,当“1”为第一有效值时为171)时,对应周期便是边界时钟周期。
若Q=341,port0像素数为341,port1像素数也为341,要找到port1和port2之间的边界时钟周期,则341+341=682,将682的低2bit直接截掉后为170,因此对de计数的计数器只需要计171个周期也就是当计到170(当“0”为第一有效值时为170,当“1”为第一有效值时为171)时,对应周期便是边界时钟周期。
在一port对应的边界时钟周期开始时,将向该port对应的移位输出控制部输出的有效指示信号拉高,即由低电平变为高电平,在边界时钟周期结束时,将向另一个移位输出控制部输出的有效指示信号拉低,即由高电平变为低电平。其中,偶数port对应第一移位输出控制部113,奇数port对应第二移位输出控制部114。又由于有效指示信号DE_12用于指示偶数port有效,有效指示信号DE_13用于指示奇数port有效。因此将有效指示信号DE_12输入第一移位输出控制部113,将有效指示信号DE_13输入第二移位输出控制部114。
示例的,参考图6所示,在port1对应的边界时钟周期2开始时,将有效指示信号DE_12拉高,在该边界时钟周期结束时,将有效指示信号DE_13拉低。参考图7所示,将有效指示信号DE_12输入第一移位输出控制部113,将有效指示信号DE_13输入第二移位输出控制部114。
优选的,边界检测部111还用于在边界时钟周期的前一个时钟周期内,向移位检测部输出边界提醒信号,在本发明实施例中,用edge_flag表示边界提醒信号。参考图7所示,边界检测部111包括一个脉冲信号生成器1111和两个与门电路。脉冲信号生成器1111根据检测到的边界时钟周期信息生成三个脉冲信号,分别为两个有效脉冲信号state0、state1和一个边界提醒信号edge_flag。
具体的,由于在边界时钟周期内可能会存在分别属于两个port的像素,例如,在时钟周期2内同时输入的像素8,9,10,11来说,由于检测到8为边界,因此该时钟周期即为边界时钟周期,在该周期内,像素8属于port0,而9,10,11则属于port1,因此边界时钟周期内存在分属于两个port的像素。单纯用一个脉冲来区分两个port并不清楚,因此根据边界时钟生成两个有效脉冲信号state0、state1和一个边界提醒信号edge_flag。有效脉冲信号state0和state1分别指示偶数port有效和奇数port有效,由于边界像素位置的不同,这两个信号可能出现图8(a)和图8(b)所示的两种时序关系。
示例的,如图8(a)所示,当边界像素位于时钟周期内的前三个像素位置时,由于直接截断低2bit的操作,在真正的边界像素的前一个时钟周期便已经指示为port边界,即边界提醒信号edge_flag拉高。边界提醒信号edge_flag拉高后第一个时钟周期(cycle)下一个port的有效脉冲信号state1拉高,边界提醒信号edge_flag拉高后第二个时钟周期当前port的有效脉冲信号state0拉低。这种情况下,当前port不会出现多采一个时钟周期的像素的情况。如图8(b)所示,若边界像素位于时钟周期内最后一个像素位置,则该像素所在时钟周期被指示为边界时钟周期,即边界提醒信号edge_flag拉高。边界提醒信号edge_flag拉高后第一个时钟周期(cycle)下一个port的有效脉冲信号state1拉高,边界提醒信号edge_flag拉高后第二个时钟周期当前port的有效脉冲信号state0拉低。这种情况下,当前port便会出现多采一个cycle的像素的情况,但由于每个port有效像素计满后,后面的无效像素可自动忽略,因此多采的一个cycle像素并不影响当前port像素的有效存储。
两个有效脉冲信号state0、state1分别接入两个与门的一个输入端,两个与门的另一个输入端都接入像素指示信号de,两个与门的输出端分别输出有效指示信号DE_12和DE_13。边界提醒信号edge_flag接入移位检测部112的使能端。
移位检测部112可以用Right_sft_detected表示,是用于检测当前port的N路并行输入像素是否需要进行右移重组,以及需要右移的像素个数。
移位检测部112用于,向两个移位输出控制部分别输出移位指示信号。
移位检测部112还用于在针对该像素行的像素进行打包过程中,每当收到一边界提醒信号edge_flag时,累加一次s,以得到p。
由上述实施例可知:移位指示信号用于指示第m个port的像素所在的第一像素组需要进行移位的像素个数p,p=s*(m-1),s为一像素行的第2个port需要移位的像素个数,s=0,1,2,3,...,(N-1);m=1,2,3...。当s=0时,每个port需要移位的像素个数都是0,对电路的设计无影响,但当s越来越大时,p也越来越大更大,电路就会越复杂,尤其当s=N-1时,p=(N-1)*(m-1)更大,电路最复杂。
因此为了简化电路,优选的,移位指示信号包括:第一移位信号和第二移位信号,在本发明实施例中分别用Loop_dly和Rsft_pix表示,当然也可以用其他符号表示。其中Loop_dly用于指示缓存入重组子单元的第一像素组需要进行移位的周期数,Rsft_pix用于指示缓存入重组子单元的第一像素组需要进行移位的像素个数。
具体的,移位检测部112用于将p除以N,得到的商值p1作为第一移位信号Loop_dly,得到的余数p2作为第二移位信号Rsft_pix。
具体的,参考图9所示,移位检测部112的电路结构包括:寄存器R0,寄存器R0的使能端接入边界提醒信号,复位端通过上升沿检测器Posedge接入像素指示信号,像素指示信号在一像素行的开始时拉高,结束时拉低,输出端通过累加器A接入寄存器R0的输入端,寄存器R0的输出信号作为累加器A的一路输入信号,累加器A的另一路输入信号为s。除法器D,除法器D的输入端与寄存器R0的输出端相连,除法器D的两个输出端分别输出第一移位信号和第二移位信号。其中,优选的,在本发明实施例中除法器D可以是固定除数为N=2n的除法器,这样可以使电路设计简单。
在iSP协议中,除了最后一个port之外,每一个port的像素个数是相同的,且一像素行最多有24个port。本模块根据设置的每个port的像素数Q,首先得到第二个port(第一个port无需右移)是否需要右移,以及需要右移的个数s,从而可以得到每个port需要右移的像素个数p,p=s*(m-1),因此当iSP controller配置完后,s便为已知参数,再根据portedge_detected模块中得到的edge_flag信号,对s进行按port累加,累加值即为对应当前port在本行像素中总共需要右移的像素个数,当新的一像素行到来的时候,也就是de的上升沿,会将累加值清零。该累加值p最大为p=24*3pixels=72pixels,也就是7bit数据宽度(即[6:0]),将该累加值p经过除法器,得到的商值即为第一移位信号loop_dly的值,该值指示当前port之前的port所产生的delay效应所对应的时钟周期数。
将该累加值p经过除法器,得到的余数值即为第二移位信号Rsft_pix。对于N像素并行输入的一像素行,由于一个时钟周期内包含有N个像素,因此,后一个port中输入的第一个时钟周期的像素组成可以分为N种情况:N个像素全都是后一个port中的像素;N个像素中有1个像素属于前一个port,有N-1个像素属于后一个port;N个像素中有2个像素属于前一个port,有N-2个像素属于后一个port;......;N个像素中有N-1个像素属于前一个port,有1个像素属于后一个port。由此可知,每一port需要移出的无效像素的个数(左移)或有效像素的个数(右移),即第二移位信号Rsft_pix,且每针对最多N个port第二移位信号Rsft_pix就可以循环一次。
示例的,N=4,后一个port中输入的第一个cycle的像素组成可以分为四种情况:4个像素全都是后一个port中的像素(如图8(b)所示);4个像素中有1个像素属于前一个port,有3个像素属于后一个port;4个像素中有2个像素属于前一个port,有2个像素属于后一个port;4个像素中有3个像素属于前一个port,有1个像素属于后一个port(如图8(a)所示)。参考图6所示,port0-port3第二移位信号Rsft_pix分别为0,3,2,1,port4-port7第二移位信号Rsft_pix分别为0,3,2,1,以此类推,每针对最多4个port第二移位信号Rsft_pix就可以循环一次。
假设每个port的像素个数为341,由341%4=1得边界像素为其所在时钟周期内的第一个像素,那对于port1来说,由第二移位信号Rsft_pix,也即需要右移的像素个数为3。然后分析第三个port,边界时钟周期内会存在两倍于第二个port的像素个数的无效像素,第二移位信号Rsft_pix,即需要右移的个数为4-(2*num_nvld_port2)%4,即示例中第三个port需要右移4-(2x1)%4即2个pixel。其中,num_nvld_port2指的是port0与port1的边界时钟周期内port1的无效像素个数。对于第四个port,边界时钟周期内会存在三倍于第二个port的像素个数的无效像素,即需要右移的个数为4-(3*num_nvld_port2)%4,即示例中第三个port需要右移4-(3x1)%4即1个pixel。对于第五个port,边界时钟周期内会存在四倍于第二个port的像素个数的无效像素,由于一个时钟周期内只会有四个像素个数,因此第五个port相当于无须右移的情况(与第一个port相同),因此当第一个port的边界像素是位于边界时钟周期内的第1个像素时,每四个port右移像素的个数循环一次。同理,当第一个port的边界像素是位于边界时钟周期内的第2个像素时,每两个port右移像素的个数循环一次。当第一个port的边界像素是位于边界时钟周期内的第3个像素时,每四个port右移像素的个数循环一次。当第一个port的边界像素是位于边界时钟周期内的第4个像素时,所有port无须右移。因此第二移位信号Rsft_pix可以通过上述规律确定,也可以是通过公式p%4得到。
在本发明实施例中,只要知道每一个port的像素个数Q,便可以得到上述的右移信息(s和p或第一移位信号和第二移位信号),因此,当iSP controller配置完后,移位检测部112Right_sft_detected就可以工作并得到每个port的右移信息。
第一移位输出控制部113与第一重组子单元12相连,第二移位输出控制部114与第二重组子单元13相连;移位输出控制部用于,按照其连接的重组子单元所对应的有效指示信号拉高后输入的移位指示信号,对其缓存的有效指示信号进行移位,并将移位指示信号输出至其连接的重组子单元,以便重组子单元按照移位指示信号对缓存的第一像素组进行移位,以得到第二像素组。
重组子单元用于,针对缓存的第一像素组,先按照当前输入的有效指示信号拉高后得到的第一移位信号Loop_dly缓存p1个时钟周期,再按照当前输入的有效指示信号拉高后得到的第二移位信号Rsft_pix移位p2个像素。
两个重组子单元的电路结构完全相同,每个重组子单元的电路结构包括:
串联的M个寄存器{R10,R11,...,R1M-1},寄存器R10用于输入第一像素组;
M路选择器S1,M路选择器S1的M个数据输入端{S10,S11,...,S1M-1}依次与M个寄存器{R10,R11,...,R1M-1}的输出端相连,M路选择器S1的选择控制信号输入端用于输入第一移位信号;
一一对应连接的两组寄存器{R20,...,R2i,...,R2N-1}和{R30,...,R3i,...,R3N-1};寄存器{R20,...,R2i,...,R2N-1}与M路选择器S1的数据输出端相连,分别用于存储第一像素组中的N个像素;
N个N路选择器{S20,...,S2i,...,S2N-1},N路选择器S2i具有N个数据输入端{S2i0,...,S2ij,...,S2i(N-1)},R2i的输出端分别与S2i0,S2(i+1)1,...,S2(N-1)(N-i-1)相连,R3i的输出端分别与S20(N-i),S21(N-i+1),...,S2(i-1)(N-1)相连;N路选择器S2i的选择控制信号输入端用于输入第二移位信号;
寄存器R4,寄存器R4与N个N路选择器{S20,...,S2i,...,S2N-1}的数据输出端相连,用于存储第二像素组中的N个像素;i=0,1,......,N;j=0,1,......,N。
示例的,以N=4,第一重组子单元12为例说明。第一重组子单元12的功能是根据移位输出控制部113输出的第一移位信号和第二移位信号,对输入的第一像素组进行移位和重组成新的第二像素组。由于一像素行最多有24个port,因此M最优为24。第一重组子单元12的电路结构图,参考图10所示,包括:
串联的24个寄存器{R10,R11,...,R123},寄存器R10用于输入第一像素组;
24路选择器S1,24路选择器S1的24个数据输入端{S10,S11,...,S123}依次与24个寄存器{R10,R11,...,R123}的输出端相连,24路选择器S1的选择控制信号输入端用于输入第一移位信号;
一一对应连接的两组寄存器{R20,R21,R22,R23}和{R30,R31,R32,R33};寄存器{R20,R21,R22,R23}与24路选择器S1的数据输出端相连,分别用于存储第一像素组中的4个像素;
4个4路选择器{S20,S21,S22,S23},N路选择器S2i具有4个数据输入端{S2i0,S2i1,S2i2,S2i3},R2i的输出端分别与S2i0,S2(i+1)1,...,S23(3-i)相连,R3i的输出端分别与S20(4-i),S21(5-i),...,S2(i-1)3相连;4路选择器S2i的选择控制信号输入端用于输入第二移位信号;
寄存器R4,寄存器R4与4个4路选择器{S20,S21,S22,S23}的数据输出端相连,用于存储第二像素组中的4个像素;i=0,1,2,3。
两个重组子单元的结构完全相同,输入的第一像素组也完全相同,但输入的移位指示信号不同,则输出的第二像素组也不同。
当需要右移的像素的总个数为p时,第一移位信号为p1和第二移位信号为p2,则输入M路选择器S1的选择控制信号输入端的信号为p1和输入N个N路选择器{S20,...,S2i,...,S2N-1}的选择控制信号输入端的信号为p2。输入的第一像素组,先经寄存器M路选择器S1的输入端输出,再经过寄存器{R20,...,R2i,...,R2N-1}和{R30,...,R31,...,R3N-1}、N个N路选择器的输入端寄存器R4,最终输出第二像素组。
示例的,以N=4,M=24为例,参考图10以及图11所示,时钟周期0缓存的port0的第一像素组0,1,2,3需要右移的像素个数为0(即不需要进行右移操作),第一移位信号和第二移位信号都为0,则分别输入24路选择器S1和4个4路选择器{S20,S21,S22,S23}的选择控制信号输入端的信号都为0。输入的第一像素组,先经寄存器R10、24路选择器S1的输入端S10输出,再经过寄存器{R20,R21,R22,R23}、4个4路选择器的输入端{S200,S210,S220,S230}、寄存器R4,最终输出第二像素组0,1,2,3。时钟周期4和时钟周期5缓存的port2的第一像素组16,17,18,19和20,21,22,23需要右移的像素个数为6(3*2=6),第一移位信号为1和第二移位信号为2(6除以4商1余2),则输入24路选择器S1的选择控制信号输入端的信号为1和输入4个4路选择器{S20,S21,S22,S23}的选择控制信号输入端的信号为2。输入的第一像素组,先经寄存器R11、M路选择器S1的输入端S11输出,每个第一像素组的4个像素再分别经过寄存器R20和S222;R21和S232;R22、R32和S202、R23、R33和S212,寄存器R4,即输入的时钟周期4内的第三和第四个像素(18,19)会多经过一级寄存器(R32和R33)进行缓存之后与时钟周期5内的前两个像素(20,21)重组成第二像素组18,19,20,21输出。以此类推,其他port中的第一像素组如何进行移位不在一一列举。
移位输出控制部(或控制子单元11)用于,针对缓存的有效指示信号,先按照当前输入的有效指示信号拉高后得到的第一移位信号Loop_dly缓存p1个时钟周期,再按照当前输入的有效指示信号拉高后得到的第二移位信号Rsft_pix移位p2个像素。
具体的,两个移位输出控制部的结构完全相同,每个移位输出控制部的电路结构包括:
串联的M个寄存器{R50,R51,...,R5M-1},寄存器R50用于输入有效指示信号;
M路选择器S3,M路选择器S3的M个数据输入端依次与M个寄存器{R50,R51,...,R5M-1}的输出端相连,M路选择器S3的选择控制信号输入端用于输入第一移位信号;
两个相连的寄存器R6和R7;寄存器R6与M路选择器S3的数据输出端相连,用于存储有效指示信号;
N路选择器S4,N路选择器S4具有N个数据输入端{S40,S41,...,S4N-1},R6的输出端与S40相连,R7的输出端与{S41,S42,...,S4N-1}相连;N路选择器S4的选择控制信号输入端用于输入第二移位信号;
寄存器R8,寄存器R8与N路选择器S4的数据输出端相连,用于存储有效指示信号;i=0,1,......,N;
寄存器R9,寄存器R9的使能端通过上升沿检测器Posedge接入有效指示信号,输入端用于输入第一移位信号,输出端连接M路选择器S3的选择引脚;
寄存器R10,寄存器R10的使能端通过上升沿检测器Posedge接入有效指示信号,输入端用于输入第二移位信号输出端连接N路选择器S4。
示例的,以N=4,第一移位输出控制部113为例说明。第一移位输出控制部113用于输出的第一移位信号和第二移位信号,并根据该第一移位信号和第二移位信号对输入的有效指示信号进行移位得到新的有效指示信号。由于一像素行最多有24个port,因此M最优为24。第一重组子单元12的电路结构图,参考图10所示,包括:
串联的24个寄存器{R50,R51,...,R523},寄存器R50用于输入有效指示信号;
24路选择器S3,24路选择器S3的24个数据输入端依次与24个寄存器{R50,R51,...,R523}的输出端相连,24路选择器S3的选择控制信号输入端用于输入第一移位信号;
两个相连的寄存器R6和R7;寄存器R6与24路选择器S3的数据输出端相连,用于存储有效指示信号;
4路选择器S4,4路选择器S4具有4个数据输入端{S40,S41,S42,S43},R6的输出端与S40相连,R7的输出端与{S41,S42,S43}相连;4路选择器S4的选择控制信号输入端用于输入第二移位信号;
寄存器R8,寄存器R8与4路选择器S4的数据输出端相连,用于存储有效指示信号;
寄存器R9,寄存器R9的使能端通过上升沿检测器Posedge接入有效指示信号,输入端用于输入第一移位信号,输出端连接24路选择器S3的选择引脚;
寄存器R10,寄存器R10的使能端通过上升沿检测器Posedge接入有效指示信号,输入端用于输入第二移位信号输出端连接4路选择器S4。
参考图10以及图11所示,有效指示信号是高电平1或低电平0,是单输入。当需要右移的像素的总个数为p时,第一移位信号为p1和第二移位信号为p2,则输入M路选择器S3的选择控制信号输入端的信号为p1和输入N路选择器S4的选择控制信号输入端的信号为p2。输入的有效指示信号,先经寄存器M路选择器S3的输入端输出;再经过寄存器R6和R7、N路选择器的输入端寄存器R8,最终输出新的有效指示信号。具体的,在第一移位输出控制部113的第二重组部1132,当p2=0时,经过寄存器R6、N路选择器的输入端S40、寄存器R8,即只经过R6和R8两个寄存器最终输出新的有效指示信号;当p2≠0时,经过寄存器R6和R7N路选择器的输入端寄存器R8,最终输出新的有效指示信号,即经过R6、R7和R8三个寄存器,输出新的有效指示信号。具体的示例,不在详细描述。
移位检测部得到的第一移位信号Loop_dly输入寄存器R9,寄存器R9的使能端通过上升沿检测器Posedge接入有效指示信号,每当有效指示信号的上升沿到来时,存入的第一移位信号Loop_dly变化。同理,移位检测部得到的第二移位信号Rsft_pix输入寄存器R10,寄存器R10的使能端通过上升沿检测器Posedge接入有效指示信号,每当有效指示信号的上升沿到来时,存入的第二移位信号Rsft_pix变化。
示例的,参考图6所示,有效指示信号DE_12_i在时钟周期4的开始出现了上升沿,因此寄存器R9存入port2的第一移位信号1,寄存器R10存入port2的第二移位信号2。
参照上述实施例的描述,可以得出第一重组子单元12的第一重组部121以及第一移位输出控制部113的第一重组部1131实质上是缓存p1个时钟周期。第一重组子单元12的第二重组部122以及第一移位输出控制部113的第二重组部1132,在进行移位的时候的规律是:当第二移位信号为0时,那么输入的一时钟周期的四个像素和对应的有效指示信号会经过两级寄存器(R2和R4)后直接输出;当第二移位信号为1时,那么输入的前一个时钟周期内的第四个像素会多经过一级寄存器(R33)进行缓存之后与后一个时钟周期内的前三个像素重组成第二像素组,对应的有效指示信号相当于经过三级寄存器输出;当第二移位信号为2时,那么输入的前一个时钟周期内的第三和第四个像素会多经过一级寄存器(R32和R33)进行缓存之后与后一个时钟周期内的前两个像素重组成第二像素组,对应的有效指示信号相当于经过三级寄存器输出;当第二移位信号为3时,那么输入的前一个时钟周期内的后三个像素会多经过一级寄存器(R31、R32和R33)进行缓存之后与后一个时钟周期内的第一个像素重组成第二像素组,对应的有效指示信号相当于经过三级寄存器输出。第二重组子单元的后半部分以及第二移位输出控制部的后半部分也一样与上述一样,不在详细描述。
在本发明实施例中,由于重组子单元与移位输出控制部的的电路结构类似,因此参考图10所示,在设计的时候将可以将重组子单元与移位输出控制部放到一起,命名为rgb_Np_recomb,rgb_Np是输入的像素值,若为4像素并行输入,则N=4,即重组子单元为rgb_4p_recomb。
输出选择部115,可以用Posedge_det表示,用于当一移位输出控制部输出的有效指示信号的上升沿到来时,输出该移位输出控制部连接的重组子单元得到的第二像素组。
从两个移位输出控制部输出的移位后的有效指示信号会进入输出选择部115。输出选择部115会对移位后的两个有效指示信号进行采上升沿的操作,并使用采沿结果产生选择信号,用以选择从哪一个重组子单元输出的第二像素组写入到对应的输入缓存处理单元2的sram中。
下面结合图6与图11,以N=4,Q=9,port0-port3为例,详细说明像素处理单元1如何将缓存的第一像素组进行移位和重组生成第二像素组。以此类推,后面的port的移位重组过程与port0-port3相似,不在赘述。
其中,控制子单元11的边界检测部111和移位检测部112的工作过程参照上述实施例,在此不在赘述。下面主要介绍重组子单元和移位输出控制部的工作过程。
重组子单元的第一重组部的工作原理是将输入的第一像素组缓存p1个时钟周期,即将第一重组子单元从寄存器输出到第二重组部,即RGB0,RGB1,RGB2,RGB3对应的像素。例如port0的第一像素组0,1,2,3不需要缓存(即从第一重组子单元12的R10输出),因此第一像素组0,1,2,3在图6中是在时钟周期0内,在图11(a)中也是在时钟周期0内;port1的第一像素组8,9,10,11也不需要缓存(1乘3得3,3除以4商0余2)(即从第一重组子单元12的R10输出),因此第一像素组8,9,10,11在图6中是在时钟周期3内,在图11(b)中也是在时钟周期3内;port2的第一像素组16,17,18,19,应该缓存1(2乘3得6,6除以4商1余2)个时钟周期(即从第一重组子单元12的R11输出),因此第一像素组16,17,18,19在图6中是在时钟周期4内,而经缓存后在图11(a)中是在时钟周期5内;port3的第一像素组24,25,26,27,应该缓存2(3乘3得9,9除以4商2余1)个时钟周期(即从第二重组子单元13的R11输出),因此第一像素组24,25,26,27在图6中是在时钟周期6内,而经缓存后在图11(b)中是在时钟周期8内。
重组子单元的第二重组部工作原理是:将第一像素组右移p2个像素,具体的当需要移位的时候,就需要把同一时钟周期进来的4个像素缓存一个时钟周期,如图11中RGB0,RGB1,RGB2,RGB3是经过第一重组部后的还没进行缓存一个时钟周期的像素(即存入重组缓存单元第二重组部的寄存器{R20,R21,R22,R23}的四个像素),RGB0_d,RGB1_d,RGB2_d,RGB3_d是经缓存一个时钟周期后的像素(即缓存到寄存器{S20,S21,S22,S23}中的像素),这样就可以通过RGB0,RGB1,RGB2,RGB3和RGB0_d,RGB1_d,RGB2_d,RGB3_d同时看到相邻两个周期的像素。如图11所示,对于port0来说,不需要进行移位重组,所以只需要RGB0,RGB1,RGB2,RGB3怎么进来怎么出去就可以(如图11(a)中圆圈标注的部分)。因此,0,1,2,3、4,5,6,7、8,9,10,11作为port0的第二像素组输出。对于第二个port1来说,进来的第一像素组是8,9,10,11,但真正属于port1的第二像素组应该是9,10,11,12,需要右移(也可理解为缓存一个周期)的个数为3,所以就需要用到RGB0_d,RGB1_d,RGB2_d,RGB3_d缓存后,如图11(b)中圆圈标注的所示,将9,10,11,12合到一起,将13,14,15,16合到一起,将17,18,19,20合到一起,作为port1的第二像素组输出。port2类似,也需要RGB0_d,RGB1_d,RGB2_d,RGB3_d进行缓存,port2进来的第一像素组是17,18,19,20,输出的第二像素组应该是18,19,20,21,需要右移(也可理解为缓存一个周期)的个数为2,如图11(a)圆圈标注的所示,将18,19,20,21组合到一起,将22,23,24,25组合到一起,将26,27,28,29组合到一起,作为port2的第二像素组输出。Port3类似,也需要RGB0_d,RGB1_d,RGB2_d,RGB3_d进行缓存,port3进来的第一像素组是24,25,26,27,输出的第二像素组应该是27,28,29,30,需要右移(也可理解为缓存一个周期)的个数为1,如图11(b)圆圈标注的所示,将27,28,29,30组合到一起,将31,32,33,34组合到一起,将35,36,37,38,组合到一起出,作为port3的第二像素组输出。
port0-port3对应的有效指示信号的移位过程是现在移位输出控制部的第一重组部移位p1个时钟周期,然后若p2=0时直接输出,若p2≠0时,在缓存一个时钟周期后输出。例如port0的有效指示信号,由于p1=0,p2=0,因此不缓存,在图6和图11(a)中都是从时钟周期0开始输入高电平;port1的有效指示信号,由于p1=0,p2=2,因此缓存1个时钟周期,在图6中是从时钟周期2开始输入高电平,在图11(b)中是从时钟周期3开始输入高电平;port2的有效指示信号,由于p1=1,p2=2,因此缓存2个时钟周期,在图6中是从时钟周期4开始输入高电平,在图11(a)中是从时钟周期6开始输入高电平;port3的有效指示信号,由于p1=2,p2=1,因此缓存3个时钟周期,在图6中是从时钟周期6开始输入高电平,在图11(b)中是从时钟周期9开始输入高电平。
上述开始输入高电平的时钟周期即是有效指示信号可检测到上升沿的位置。在图6中的有效指示信号DE_12_i在时钟周期0和时钟周期4检测到上升沿,此时第一移位输出控制部113的寄存器R9和R10分别存入port0和port2对应的第一移位信号和第二移位信号;有效指示信号DE_13_i在时钟周期2和时钟周期6检测到上升沿,此时第一移位输出控制部114的寄存器R9和R10分别存入port1和port3对应的第一移位信号和第二移位信号。在图11(a)中的有效指示信号DE_12_o在时钟周期0和时钟周期6检测到上升沿,此时第一重组子单元12分别输出port0和port2的第二像素组(图中圆圈标注的部分);有效指示信号DE_13_o在时钟周期3和时钟周期9检测到上升沿,此时第二重组子单元13分别输出port1和port3的第二像素组(图中圆圈标注的部分)。
输入缓存处理单元2,参考图7所示,从像素处理单元1输出的每个port的第二像素组依次输入给输入缓存处理单元2的srams里,当一像素行的各port的像素缓存完后,将各port的像素同时输出打到显示屏上。在本发明实施例中,line_cnt的作用仍然是对当前输入的行数进行计数,每计完一帧图像的行数后清零。由于是N个像素并行输入的,即每个时钟输入N个像素,因此Pixel_cnt的作用是对当前像素行进来的时钟计数,以此来确定当前进来的像素是属于哪个port的,从而把这个时钟周期的像素存储到对应的sram里,例如每个port像素数是341,N=4那么pixel_cnt每加够341%4+1=86个时钟周期,下一个时钟周期就存到下一个port对应的sram里。每计完一像素行的时钟数后清零。24个srams是用来缓存一行的各port的第二像素组。在sram中,每N个像素都是并行输入的,进一步的,还可以从sram中以每N个像素并行输出。
本发明实施例提供了一种打包模块,通过对iSP controller的打包模块的改进,即增加支持多像素并行输入功能的打包模块,使得iSP controller能够支持多像素的并行输入,解决了现有iSP controller采用单像素输入方式导致的对iSP controller的工作频率要求过高的问题,从而避免了使iSP controller的功耗增加和对iSP controller器件的特性要求提高的问题。
实施例二
本发明实施例提供了一种打包方法,本实施例的执行主体是打包模块,参考图12所示,以下步骤的具体实现方法可以参照实施例一的描述,在此不在详述。该方法的具体步骤包括:
S101、按照时钟周期依次输入一像素行的多个第一像素组,每个第一像素组包括在一个时钟周期并行输入的N个像素。
其中,N=2n,n为正整数。
S102、根据预设的端口像素数,从输入的像素中确定每个端口的首像素,并以端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完。
需要说明的是:由于一帧图像包括多个像素行,一个像素行包括多个port,一个port中的像素个数是固定的,且除最后一个port外,其他port的像素个数相同。因此本发明实施例提供的打包方法是必须保证每个port的首像素必须正确,但是每个port的最后一个时钟周期的第二像素组中可以包含非本port的像素。
S103、将同一像素行的各个端口的第二像素组存储于像素行的缓存中。
本发明实施例提供了一种打包方法,通过对iSP controller的打包模块的改进,即增加支持多像素并行输入功能的打包模块,使得iSP controller能够支持多像素的并行输入,解决了现有iSP controller采用单像素输入方式导致的对iSP controller的工作频率要求过高的问题,从而避免了使iSP controller的功耗增加和对iSP controller器件的特性要求提高的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元(或模块)的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种打包模块,其特征在于,包括:
像素处理单元,用于按照时钟周期依次输入一像素行的多个第一像素组,每个所述第一像素组包括在一个所述时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的所述像素中确定每个端口的首像素,并以所述端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完;将所述端口的第二像素组按照时钟周期依次输出至输入缓存处理单元;
所述输入缓存处理单元,用于将同一像素行的各个端口的第二像素组存储于所述像素行的缓存中;
其中,N=2n,n为正整数;
所述像素处理单元包括:控制子单元、第一重组子单元、第二重组子单元;
每个所述重组子单元用于缓存按照时钟周期依次输入一像素行的第一像素组;
所述控制子单元用于控制所述重组子单元对缓存的第一像素组进行重组,得到所述重组子单元的有效端口的第二像素组;其中,偶数端口作为所述第一重组子单元的有效端口,奇数端口作为所述第二重组子单元的有效端口;
所述控制子单元还用于控制两个所述重组子单元交替输出各自有效端口的第二像素组。
2.根据权利要求1所述的打包模块,其特征在于,
所述控制子单元用于分别向所述重组子单元输出所述重组子单元对应的有效指示信号拉高后的移位指示信号;其中,所述有效指示信号在其对应的重组子单元的有效端口的首像素所在时钟周期开始时拉高,且在其中一个所述有效指示信号拉高一个时钟周期后,另一个有效指示信号拉低;所述移位指示信号用于指示第m个端口的像素所在的第一像素组需要进行移位的像素个数p,p=s*(m-1),所述s为所述像素行的第2个端口需要移位的像素个数,m=1,2,3...;
所述重组子单元用于按照输入的所述移位指示信号对缓存的第一像素组进行移位,以得到其有效端口的第二像素组;
所述控制子单元还用于按照输入给所述重组子单元的移位指示信号,对缓存的与所述重组子单元对应的有效指示信号进行移位;并当一移位后的有效指示信号的上升沿到来时,输出该有效指示信号对应的重组子单元得到的第二像素组。
3.根据权利要求2所述的打包模块,其特征在于,所述控制子单元包括:边界检测部、移位检测部、第一移位输出控制部、第二移位输出控制部、输出选择部;
所述边界检测部用于,根据预设的端口像素数、以及所述N确定所述像素行的边界时钟周期,所述边界时钟周期为各所述端口的首像素所在的时钟周期;在一端口对应的边界时钟周期开始时,将向该端口对应的所述移位输出控制部输出的有效指示信号拉高,在所述边界时钟周期结束时,将向另一个所述移位输出控制部输出的有效指示信号拉低,其中,偶数端口对应所述第一移位输出控制部,奇数端口对应所述第二移位输出控制部;
所述移位检测部用于,向两个所述移位输出控制部分别输出移位指示信号;
所述第一移位输出控制部与所述第一重组子单元相连,所述第二移位输出控制部与所述第二重组子单元相连;所述移位输出控制部用于,按照其连接的重组子单元所对应的有效指示信号拉高后输入的移位指示信号,对其缓存的有效指示信号进行移位,并将所述移位指示信号输出至其连接的重组子单元,以便所述重组子单元按照所述移位指示信号对缓存的第一像素组进行移位,以得到第二像素组;
所述输出选择部,用于当一所述移位输出控制部输出的有效指示信号的上升沿到来时,输出该移位输出控制部连接的重组子单元得到的第二像素组。
4.根据权利要求3所述的打包模块,其特征在于,
所述边界检测部还用于在所述边界时钟周期的前一个时钟周期内,向所述移位检测部输出边界提醒信号;
所述移位检测部还用于在针对该像素行的像素进行打包过程中,每当收到一边界提醒信号时,累加一次所述s,以得到所述p。
5.根据权利要求3-4任一项所述的打包模块,其特征在于,所述移位指示信号包括:第一移位信号和第二移位信号;
所述移位检测部还用于将所述p除以所述N,得到的商值p1作为第一移位信号,得到的余数p2作为第二移位信号;
所述重组子单元用于,针对缓存的第一像素组,先按照当前输入的有效指示信号拉高后得到的所述第一移位信号缓存p1个时钟周期,再按照当前输入的有效指示信号拉高后得到的所述第二移位信号移位p2个像素;
所述控制子单元用于,针对缓存的有效指示信号,先按照当前输入的有效指示信号拉高后得到的所述第一移位信号缓存p1个时钟周期,再按照当前输入的有效指示信号拉高后得到的所述第二移位信号移位p2个像素。
6.根据权利要求5所述的打包模块,其特征在于,所述移位检测部包括:
寄存器R0,所述寄存器R0的使能端接入边界提醒信号,复位端通过上升沿检测器接入像素指示信号,所述像素指示信号在一像素行的开始时拉高,结束时拉低,输出端通过累加器A接入所述寄存器R0的输入端,所述寄存器R0的输出信号作为所述累加器A的一路输入信号,所述累加器A的另一路输入信号为所述s;
除法器D,所述除法器D的输入端与所述寄存器R0的输出端相连,所述除法器D的两个输出端分别输出所述第一移位信号和第二移位信号。
7.根据权利要求5所述的打包模块,其特征在于,所述重组子单元包括:
串联的M个寄存器{R10,R11,...,R1M-1},寄存器R10用于输入第一像素组;
M路选择器S1,所述M路选择器S1的M个数据输入端依次与所述M个寄存器{R10,R11,...,R1M-1}的输出端相连,所述M路选择器S1的选择控制信号输入端用于输入第一移位信号;
一一对应连接的两组寄存器{R20,...,R2i,...,R2N-1}和{R30,...,R3i,...,R3N-1};寄存器{R20,...,R2i,...,R2N-1}与所述M路选择器S1的数据输出端相连,分别用于存储第一像素组中的N个像素;
N个N路选择器{S20,...,S2i,...,S2N-1},N路选择器S2i具有N个数据输入端{S2i0,...,S2ij,...,S2i(N-1)},R2i的输出端分别与S2i0,S2(i+1)1,…,S2(N-1)(N-i-1)相连,R3i的输出端分别与S20(N-i),S21(N-i+1),…,S2(i-1)(N-1)相连;所述N路选择器S2i的选择控制信号输入端用于输入第二移位信号;
寄存器R4,所述寄存器R4与所述N个N路选择器{S20,…,S2i,...,S2N-1}的数据输出端相连,用于存储第二像素组中的N个像素;
其中,i=0,1,......,N-1;j=0,1,......,N-1。
8.根据权利要求5所述的打包模块,其特征在于,所述移位输出控制部包括:
串联的M个寄存器{R50,R51,...,R5M-1},寄存器R50用于输入有效指示信号;
M路选择器S3,所述M路选择器S3的M个数据输入端依次与所述M个寄存器{R50,R51,...,R5M-1}的输出端相连,所述M路选择器S3的选择控制信号输入端用于输入第一移位信号;
两个相连的寄存器R6和R7;寄存器R6与所述M路选择器S3的数据输出端相连,用于存储有效指示信号;
N路选择器S4,N路选择器S4具有N个数据输入端{S40,S41,...,S4N-1},R6的输出端与S40相连,R7的输出端与{S41,S42,...,S4N-1}相连;所述N路选择器S4的选择控制信号输入端用于输入第二移位信号;
寄存器R8,所述寄存器R8与所述N路选择器S4的数据输出端相连,用于存储有效指示信号;i=0,1,......,N-1;
寄存器R9,所述寄存器R9的使能端通过上升沿检测器接入有效指示信号,输入端用于输入第一移位信号,输出端连接所述M路选择器S3的选择引脚;
寄存器R10,寄存器R10的使能端通过上升沿检测器接入有效指示信号,输入端用于输入第二移位信号输出端连接N路选择器S4。
9.一种打包方法,其特征在于,所述打包方法应用于上述权利要求1-8任一项所述的打包模块中,该方法包括:
按照时钟周期依次输入一像素行的多个第一像素组,每个所述第一像素组包括在一个所述时钟周期并行输入的N个像素;根据预设的端口像素数,从输入的所述像素中确定每个端口的首像素,并以所述端口的首像素起每N个像素组成一个第二像素组,直至该端口的像素重组完;
将同一像素行的各个端口的第二像素组存储于所述像素行的缓存中;
其中,N=2n,n为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610885469.7A CN107918533B (zh) | 2016-10-10 | 2016-10-10 | 一种打包模块和打包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610885469.7A CN107918533B (zh) | 2016-10-10 | 2016-10-10 | 一种打包模块和打包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107918533A CN107918533A (zh) | 2018-04-17 |
CN107918533B true CN107918533B (zh) | 2021-03-05 |
Family
ID=61892506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610885469.7A Active CN107918533B (zh) | 2016-10-10 | 2016-10-10 | 一种打包模块和打包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107918533B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4665556A (en) * | 1983-02-09 | 1987-05-12 | Hitachi, Ltd. | Image signal processor |
CN1901674A (zh) * | 2005-06-24 | 2007-01-24 | 晶像股份有限公司 | 通过串行链路传输n比特视频数据的方法和系统 |
CN101427264A (zh) * | 2004-04-08 | 2009-05-06 | 硅奥普迪思公司 | 用于位平面数据的高密度存储和处理的方法和装置 |
CN101567959A (zh) * | 2008-04-21 | 2009-10-28 | 夏普株式会社 | 像素输入输出方法及装置、图像压缩方法及装置 |
CN105659594A (zh) * | 2013-10-17 | 2016-06-08 | 联发科技股份有限公司 | 发送/接收图片的压缩的像素数据组和像素数据分组设定的指示信息的数据处理装置以及相关数据处理方法 |
-
2016
- 2016-10-10 CN CN201610885469.7A patent/CN107918533B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4665556A (en) * | 1983-02-09 | 1987-05-12 | Hitachi, Ltd. | Image signal processor |
CN101427264A (zh) * | 2004-04-08 | 2009-05-06 | 硅奥普迪思公司 | 用于位平面数据的高密度存储和处理的方法和装置 |
CN1901674A (zh) * | 2005-06-24 | 2007-01-24 | 晶像股份有限公司 | 通过串行链路传输n比特视频数据的方法和系统 |
CN101567959A (zh) * | 2008-04-21 | 2009-10-28 | 夏普株式会社 | 像素输入输出方法及装置、图像压缩方法及装置 |
CN105659594A (zh) * | 2013-10-17 | 2016-06-08 | 联发科技股份有限公司 | 发送/接收图片的压缩的像素数据组和像素数据分组设定的指示信息的数据处理装置以及相关数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107918533A (zh) | 2018-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8305495B2 (en) | Video processing device, video display device, and video processing method | |
US8649634B2 (en) | Method and device for image zooming | |
CN101911034A (zh) | 数据总线反转设备、系统及方法 | |
US7671876B2 (en) | Resolution scaler using a decimal part of an accumulator output as a weight for generating scaled pixel data | |
JPH03502506A (ja) | 高速データを処理するための方法及び装置 | |
US20220345769A1 (en) | Image data processing device and method, and display device | |
CN107948188A (zh) | 一种arinc818‑dvi协议转换方法 | |
US20230087911A1 (en) | Method and apparatus for generating vector diagram and storage medium | |
CN107918533B (zh) | 一种打包模块和打包方法 | |
US8565542B2 (en) | Data processing apparatus and data processing method | |
KR100850773B1 (ko) | 디스플레이 장치의 화상 평가 모듈 | |
TWI388202B (zh) | 影像灰階分佈之統計裝置及其方法 | |
US8751990B2 (en) | System for determining median values of video data | |
US7460718B2 (en) | Conversion device for performing a raster scan conversion between a JPEG decoder and an image memory | |
CN111355914B (zh) | 一种视频制式信号生成装置和方法 | |
US6734868B2 (en) | Address generator for video pixel reordering in reflective LCD | |
WO2011104582A1 (en) | Apparatus, display module and methods for controlling the loading of frames to a display module | |
EP2648179A1 (en) | Image processing device, image processing method | |
JP3553376B2 (ja) | 並列画像処理プロセッサ | |
EP1459291B1 (en) | Digital line delay using a single port memory | |
US8314752B2 (en) | Display device and related driving method using low capacity row buffer memory | |
JP2012203543A (ja) | データ処理装置およびデータ処理方法 | |
CN101984668A (zh) | 适用于各种4×4插值滤波器的实时图像缩放引擎 | |
TWI559147B (zh) | 資料傳輸系統及操作資料傳輸系統的方法 | |
JP4317254B2 (ja) | 液晶表示装置の表示データ読み込み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Video Technology Co., Ltd Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant before: HISENSE ELECTRIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |