CN106101712B - 一种视频流数据的处理方法及装置 - Google Patents
一种视频流数据的处理方法及装置 Download PDFInfo
- Publication number
- CN106101712B CN106101712B CN201610414793.0A CN201610414793A CN106101712B CN 106101712 B CN106101712 B CN 106101712B CN 201610414793 A CN201610414793 A CN 201610414793A CN 106101712 B CN106101712 B CN 106101712B
- Authority
- CN
- China
- Prior art keywords
- video stream
- stream data
- address
- group
- read
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种视频流数据的处理方法及装置,用以节省存储空间资源。所述视频流数据的处理方法,包括:接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据所述写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据所述读地址将视频流数据从所述存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种视频流数据的处理方法及装置。
背景技术
通常情况下,视频流数据在传输时以逐行的形式进行传输,但是在某些情况下,将视频流数据中每帧图像的数据按块(n*n个像素点的数据块,n为2的i次方,i为整数)进行处理更有利于现场可编程门阵列(Field-Programmable Gate Array,FPGA)的实现。如图1所示,在将按行输入的视频流数据(图1中102所示的处理方式)转化为块数据(图1中104所示的处理方式)时,需要对前n行视频流数据进行存储,在用FPGA对视频流数据进行存储时,一般使用FPGA内部的随机存取存储器(random access memory,RAM)资源。
现有方案中,将按行输入的视频流数据转化为按块处理时,为了保证视频流数据不被覆盖而丢失数据,采用乒乓操作的方式,具体来说:需要使用两个存储单元Memory0和Memory1,每个存储单元均存储n行数据,当对Memory0进行写数据操作时,对Memory1进行读数据操作,当对Memory0进行读数据操作时,对Memory1进行写数据操作,读写数据操作是同步进行的,采用这种方法视频流数据不会被覆盖,确保从存储单元中取出的数据块是正确的。
但是,乒乓操作的方式需要两个存储单元不断的进行读写切换操作,在数据块像素点较多的情况下(即n*n中n数值比较大),消耗大量的RAM资源。
综上所述,现有技术中将按行存储的视频流数据转化为按块处理时,在数据块像素点较多的情况下,采用乒乓操作使用两个存储单元,消耗大量的RAM资源。
发明内容
本发明实施例提供了一种视频流数据的处理方法及装置,用以节省存储空间资源。
本发明实施例提供的一种视频流数据的处理方法,该方法包括:接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据所述写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据所述读地址将视频流数据从所述存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数。
本发明实施例提供的上述方法中,将接收到的视频流数据以每M行为一组进行分组,针对每一组视频流数据,根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,也即将下一组视频流数据写入到该存储空间中已经读取出的视频流数据的存储位置处,读写操作同步进行,避免未读取的视频流数据被写入的下一组视频流数据所覆盖,充分利用存储空间空置状态下的空间资源,与现有技术中采用乒乓操作需要使用两个存储空间相比,只需要使用一个存储空间,节省了存储空间资源。
在一种可能的实施方式中,本发明实施例提供的上述方法中,所述读地址和所述写地址均周期性变化,针对每一周期内的第n组视频流数据:根据初始写地址以及第一变化规则为视频流数据分配写地址,包括:计算i×(n-1)除以所述初始写地址的地址位宽的余数m,将所述初始写地址的低m比特位移到高m比特位生成所述写地址;根据初始读地址以及第二变化规则生成读地址,包括:计算i×n除以所述初始读地址的地址位宽的余数j,将所述初始读地址的低j比特位移到高j比特位生成所述读地址;其中,n为正整数。
本发明实施例提供的上述方法中,根据初始写地址和初始读地址通过简单的移位操作就可以得出所需要的读取地址,初始写地址和初始读地址的地址位宽相同且固定,通过移位操作得到的写地址和读地址呈现周期性变化,因此,在计算任一组视频流数据的写地址和读地址的过程中,只需计算一个初始写地址和初始读地址,根据该组视频流数据在周期内的位置,通过移位操作即可得出该组视频流数据的写地址和读地址,计算简单,在视频流数据的写入与读取过程中,仅使用一个存储空间,减少了写地址和读地址的数量,而且针对每组视频流数据,其写地址移位m为i×(n-1)除以所述初始写地址的地址位宽的余数,读地址移位j为i×n除以所述初始读地址的地址位宽的余数,因此,该组视频流数据的读地址相当于将写地址的低i位移到高i位,由于视频流数据每M行为一组,M为2的i次方,而该组视频流数据的读地址相当于将写地址的低i位移到高i位,从而将该组视频流数据按行写入,按列读出,实现了视频流数据的行块转换。
在一种可能的实施方式中,本发明实施例提供的上述方法中,所述初始写地址的地址位宽以及所述初始读地址的地址位宽相同,且是根据所述M值的大小以及所述视频流数据中每行的像素点数所确定的。
在一种可能的实施方式中,本发明实施例提供的上述方法中,该方法还包括:在将每一组视频流数据写入所述存储空间之后,将所述初始写地址清零,以及在将每一组视频流数据从所述存储空间中读出之后,将所述初始读地址清零。
在一种可能的实施方式中,本发明实施例提供的上述方法中,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,包括:在将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出。
本发明实施例提供的上述方法中,在视频流数据的写入与读取过程中,由于读写操作同步进行,因此,在将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,在保证实现视频流数据行块转换的同时,提高了视频流数据行块转换的效率。
本发明实施例提供的一种视频流数据的处理装置,该装置包括:接收单元,用于接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;处理单元,用于针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据所述写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据所述读地址将视频流数据从所述存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数。
本发明实施例提供的上述装置中,将接收到的视频流数据以每M行为一组进行分组,针对每一组视频流数据,根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,也即将下一组视频流数据写入到该存储空间中已经读取出的视频流数据的存储位置处,读写操作同步进行,避免未读取的视频流数据被写入的下一组视频流数据所覆盖,充分利用存储空间空置状态下的空间资源,与现有技术中采用乒乓操作需要使用两个存储空间相比,只需要使用一个存储空间,节省了存储空间资源。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述读地址和所述写地址均周期性变化,针对每一周期内的第n组视频流数据:所述处理单元根据初始写地址以及第一变化规则为视频流数据分配写地址,具体用于:计算i×(n-1)除以所述初始写地址的地址位宽的余数m,将所述初始写地址的低m比特位移到高m比特位生成所述写地址;所述处理单元根据初始读地址以及第二变化规则生成读地址,具体用于:计算i×n除以所述初始读地址的地址位宽的余数j,将所述初始读地址的低j比特位移到高j比特位生成所述读地址;其中,n为正整数。
本发明实施例提供的上述装置中,根据初始写地址和初始读地址通过简单的移位操作就可以得出所需要的读取地址,初始写地址和初始读地址的地址位宽相同且固定,通过移位操作得到的写地址和读地址呈现周期性变化,因此,在计算任一组视频流数据的写地址和读地址的过程中,只需计算一个初始写地址和初始读地址,根据该组视频流数据在周期内的位置,通过移位操作即可得出该组视频流数据的写地址和读地址,计算简单,在视频流数据的写入与读取过程中,仅使用一个存储空间,减少了写地址和读地址的数量,而且针对每组视频流数据,其写地址移位m为i×(n-1)除以所述初始写地址的地址位宽的余数,读地址移位j为i×n除以所述初始读地址的地址位宽的余数,因此,该组视频流数据的读地址相当于将写地址的低i位移到高i位,由于视频流数据每M行为一组,M为2的i次方,而该组视频流数据的读地址相当于将写地址的低i位移到高i位,从而将该组视频流数据按行写入,按列读出,实现了视频流数据的行块转换。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述初始写地址的地址位宽以及所述初始读地址的地址位宽相同,且是根据所述M值的大小以及所述视频流数据中每行的像素点数所确定的。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元还用于:在将每一组视频流数据写入所述存储空间之后,将所述初始写地址清零,以及在将每一组视频流数据从所述存储空间中读出之后,将所述初始读地址清零。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,具体用于:所述处理单元将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出。
本发明实施例提供的上述装置中,在视频流数据的写入与读取过程中,由于读写操作同步进行,因此,在将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,在保证实现视频流数据行块转换的同时,提高了视频流数据行块转换的效率。
附图说明
图1为现有技术中视频流数据行块转换的原理示意图;
图2为本发明实施例提供的一种视频流数据的处理方法的示意流程图;
图3为本发明实施例提供的第一组视频流数据写入存储空间的原理示意图;
图4为本发明实施例提供的第二组视频流数据写入存储空间的原理示意图;
图5为本发明实施例提供的第三组视频流数据写入存储空间的原理示意图;
图6A为本发明实施例提供的视频流数据写入存储空间的写地址周期性变化的示意图;
图6B为本发明实施例提供的将视频流数据读出存储空间的读地址周期性变化的示意图;
图7为本发明实施例提供的一种视频流数据的处理装置的结构示意图。
具体实施方式
下面结合附图,对本发明实施例提供的一种视频流数据的处理方法及装置的具体实施方式进行详细地说明。
本发明实施例提供的一种视频流数据的处理方法,如图2所示,该方法包括:
步骤202,接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;
步骤204,针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数。
本发明实施例提供的方法中,将接收到的视频流数据以每M行为一组进行分组,针对每一组视频流数据,根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,也即将下一组视频流数据写入到该存储空间中已经读取出的视频流数据的存储位置处,读写操作同步进行,避免未读取的视频流数据被写入的下一组视频流数据所覆盖,充分利用存储空间空置状态下的空间资源,与现有技术中采用乒乓操作需要使用两个存储空间相比,只需要使用一个存储空间,节省了存储空间资源。
具体实施时,接收输入的视频流数据,并将接收到的视频流数据以每M行为一组进行分组,其中,每M行是指连续的M行视频流数据,M的大小根据输出的数据块的行像素点数或列像素点数确定,数据块的行像素点数和列像素点数相等,M的值等于数据块的行像素点数或者等于数据块的列像素点数。
值得说明的是,预先配置的存储空间的大小需要大于或等于M行视频流数据所占用的存储空间,以存储M行的视频流数据,作为较为具体的实施例,假设输入的视频流数据为1080P,每行的像素点数为1920个,每8(M=8,i=3)行视频流数据为一组,则8行视频流数据所需要的存储空间为8*1920,可以预先配置8*2048的存储空间。
具体实施时,根据初始写地址以及第一变化规则为视频流数据中的每一像素点分配写地址,并根据写地址将视频流数据写入存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据读地址将视频流数据从存储空间中读出,其中,第一变化规则和第二变化规则,均可以是移位操作。
值得说明的是,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,可以在第M行视频流数据的像素点写入存储空间的过程中,根据读地址将视频流数据从存储空间中读出,也可以在第M行视频流数据的像素点全部写入存储空间之后,根据读地址将视频流数据从存储空间中读出,当然,为了提高视频流数据的行块转换效率,作为较为优选的实施例,可以在第M行视频流数据的第一个像素点写入存储空间之后,根据读地址将视频流数据从存储空间中读出。
以第一组视频流数据和第二组视频流数据为例,对本发明实施例提供的视频流数据处理方法进行说明。针对第一组视频流数据,根据初始写地址以及第一变化规则生成第一组视频流数据的写地址,将第一组视频流数据写入存储空间中,当第一组视频流数据的第M行第一个像素点写入存储空间之后,根据读地址从存储空间中读取视频流数据,当第一组视频流数据全部写入存储空间之后,对初始写地址清零,也即对初始写地址进行初始化,然后根据初始写地址以及第一变化规则生成第二组视频流数据的写地址,将第二组视频流数据写入已经读取出的第一组视频流数据所在的存储位置,当第一组视频流数据全部读出时,对初始读地址清零,当第二组视频流数据第M行第一个像素点写入存储空间之后,开始从存储空间中读取第二组视频流数据,依次类推。
在一种可能的实施方式中,本发明实施例提供的方法中,读地址和写地址均周期性变化,针对每一周期内的第n组视频流数据:根据初始写地址以及第一变化规则为视频流数据分配写地址,包括:计算i×(n-1)除以初始写地址的地址位宽的余数m,将初始写地址的低m比特位移到高m比特位生成写地址;根据初始读地址以及第二变化规则生成读地址,包括:计算i×n除以初始读地址的地址位宽的余数j,将初始读地址的低j比特位移到高j比特位生成读地址;其中,n为正整数。从写地址的生成规则以及读地址的生成规则可以看出,在初始写地址和初始读地址相同的情况下,下一组视频流数据的写地址与上一组视频流数据的读地址相同,读写操作同步进行,保证了下一组视频流数据写入已经读出的上一组视频流数据所在的存储空间,避免视频流数据写入和读出的冲突。
本发明实施例提供的方法中,根据初始写地址和初始读地址通过简单的移位操作就可以得出所需要的读取地址,初始写地址和初始读地址的地址位宽相同且固定,通过移位操作得到的写地址和读地址呈现周期性变化,因此,在计算任一组视频流数据的写地址和读地址的过程中,只需计算一个初始写地址和初始读地址,根据该组视频流数据在周期内的位置,通过移位操作即可得出该组视频流数据的写地址和读地址,计算简单,在视频流数据的写入与读取过程中,仅使用一个存储空间,减少了写地址和读地址的数量,而且针对每组视频流数据,其写地址移位m为i×(n-1)除以所述初始写地址的地址位宽的余数,读地址移位j为i×n除以所述初始读地址的地址位宽的余数,因此,该组视频流数据的读地址相当于将写地址的低i位移到高i位,由于视频流数据每M行为一组,M为2的i次方,而该组视频流数据的读地址相当于将写地址的低i位移到高i位,从而将该组视频流数据按行写入,按列读出,实现了视频流数据的行块转换。
作为较为具体的实施例,假设输入的视频流数据为1080P,每行的像素点数为1920,输出为8*8的数据块,即M=8,则首先,定义一个深度为8*2048深度的RAM。写地址和读地址的变化是一个周期性的过程,在一个周期内,每输入8行写地址和读地址就变化一次,为了便于说明,一个周期内每变化一次称为Step(x)。
Step0:一帧开始时,将接收到的第一组8行视频流数据按行写入RAM,具体的存储方式,如图3所示,由于RAM的深度为8*2048,定义初始写地址的地址位宽为14bits,变量名为wr_addr[13:0],每行的像素计数器h_cnt[10:0],8行一个周期的行计数器v_cnt[2:0],则初始写地址由行计数器与像素计数器拼接而成,初始写地址为wr_addr=v_cnt*2048+h_cnt,即wr_addr[13:0]={v_cnt[2:0],h_cnt[10:0]},第一组8行视频流数据的写地址等于初始写地址。
同理,定义一个14bits(比特位)地址位宽的初始读地址,变量名为rd_addr[13:0],在读使能有效时,初始读地址rd_addr不断累加,为了从存储空间中按数据块读取视频流数据,需要将初始读地址的低3bits移到高3bits,即生成的读地址rd1_addr={rd_addr[2:0],rd_addr[13:3]},具体来说,在读取第一组8行视频流数据时,当第一组8行视频流数据中line 8第一组像素点写入存储空间之后,开始按数据块读取第一组8行的视频流数据,第1个时钟读取line 1的像素点1,第2个时钟读取line 2的像素点1……,第9个时钟读取line 1的像素点2,第10个时钟读取line 2的像素点2,依次类推,直到读取64个像素点,完成一个8*8的数据块的输出,按照这种方法依次将第一组8行视频流数据按数据块输出,直到第一组8行视频流数据全部读取完毕,其中,第一组8行视频流数据全部写入存储空间之后,将初始写地址置0,第一组8行视频流数据全部读取完毕时,将初始读地址置为0。
Step1:第一组8行视频流数据写入完毕,将第二组8行的视频流数据按行依次写入存储空间,为了确保第二组8行的视频流数据在写入存储空间中时,不会覆盖第一组8行视频流数据中未读取的视频流数据,必须将第二组8行的视频流数据写入第一组8行的视频流数据已经被读取出的部分所在的存储空间,具体的存储方法,如图4所示,具体实施时,为了将第二组8行的视频流数据写入已被读取的第一组8行的视频流数据所在的存储空间,需要对初始写地址进行变换,生成第二组8行视频流数据的写地址,具体来说,在Step0的基础上,将初始读地址wr_addr低3bits移到高3bits,即生成的写地址wr1_addr={wr_addr[2:0],wr_addr[13:3]},由于读写操作的同步性,第二组8行的视频流数据在写入存储空间中时,不会覆盖第一组8行视频流数据中未读取的视频流数据。
当第二组8行视频流数据line 8第一组像素点写入RAM后,开始按数据块读取第二组8行的视频流数据,同Step0,第1个时钟读取line 1的像素点1,第2个时钟读取line 2的像素点1……,第9个时钟读取line 1的像素点2,第10个时钟读取line 2的像素点2,依次类推,直到读取64个像素点,完成一个8*8的数据块的输出,按照这种方法依次将第二组8行视频流数据按数据块输出,其中,读地址的计算与Step0类似,通过读使能对初始读地址rd_addr进行累加,此时只需将初始读地址低6bits移动到高6bits,即生成的读地址rd1_addr[13:0]={rd_addr[5:0],rd_addr[13:6]}。第二组8行视频流数据全部写入完毕后,将初始写地址置为0,第二组8行视频流数据全部读取完毕后,将初始读地址置为0。与Step0的读地址相比,Step1读地址的移动相当于在Step0的基础上多移动3bits低位地址。
Step2:第二组8行视频流数据写入完毕,将第三组8行的视频流数据按行依次写入存储空间,为了确保第三组8行的视频流数据在写入存储空间中时,不会覆盖第二组8行视频流数据中未读取的视频流数据,必须将第三组8行的视频流数据写入第二组8行的视频流数据已经被读取出的部分所在的存储空间,具体的存储方法,如图5所示,图5中示出了第1行视频流数据写入存储空间中的存储位置,第2行-第8行视频流数据写入存储空间的方式与第1行视频流数据写入存储空间的方式类似,具体实施时,为了将第三组8行的视频流数据写入已被读取的第二组8行的视频流数据所在的存储空间,需要对初始写地址进行变换,生成第三组8行视频流数据的写地址,具体来说,在Step0的基础上,将初始写地址wr_addr低6bits移到高6bits,即生成的写地址wr1_addr={wr_addr[5:0],wr_addr[13:6]},与Step1写地址相比,Step2写地址相当于在Step1的基础上多移动3bits低位地址。
当第三组8行视频流数据line 8第一组像素点写入RAM后,开始按数据块读取第三组8行的视频流数据,同理,读地址的计算与Step0类似,通过读使能对初始读地址rd_addr进行累加,只需将初始读地址低9bits移动到高9bits,即生成的读地址rd1_addr[13:0]={rd_addr[8:0],rd_addr[13:9]}。第三组8行视频流数据全部写入完毕后,将初始写地址置为0,第三组8行视频流数据全部读取完毕后,将初始读地址置为0。与Step1读地址相比,Step2读地址的移动相当于在Step1的基础上多移动3bits低位地址。
从Step0、Step1以及Step2的变化过程可以推断出,后一个Step的写地址和读地址只需在前一个Step的基础上将低3bits移动到高3bits,就可以完成写地址和读地址的变化,由于读写操作的同步性,从而保证了下一组写入的视频流数据不会覆盖上一组未读取的视频流数据。
由于初始写地址和初始读地址的地址位宽固定,因此通过移位操作得到的写地址和读地址呈现周期性变化,也即写地址和读地址的变化是一个周期性的变化过程,周期的大小与存储数据的多少和数据块的大小相关,存储数据的多少决定RAM的深度,即写地址和读地址的地址位宽,数据块的大小决定了后一个Step在前一个step的基础上低位多移动多少比特位的低位地址,假设数据块的大小为n*n,n为2的i次方(i为正整数),则每次多移动i比特位的低位地址。
如图6A和6B所示,图6A示出了1080P视频流数据输入,8*8数据块输出的写地址的变化情况,图6B示出了1080P视频流数据输入,8*8数据块输出的读地址的变化情况,写地址和读地址的地址位宽均为14bits,每次移动地址的低3bits到高3bits,从图6A和6B中可以看出,1080P视频流数据输入,8*8数据块输出的一个周期内写地址和读地址变化14次,也即周期的大小为14。
值得说明的是,当RAM深度的地址位宽为w,输出数据块的大小为n*n(n为2的i次方),w与i的最大公约数为d,则周期的大小为w/d,即写地址和读地址在一个周期内移动w/d次,且每次移动的地址位宽为i。
在一种可能的实施方式中,本发明实施例提供的方法中,初始写地址的地址位宽以及初始读地址的地址位宽相同,且是根据M值的大小以及视频流数据中每行的像素点数所确定的。
在一种可能的实施方式中,本发明实施例提供的方法中,该方法还包括:在将每一组视频流数据写入存储空间之后,将初始写地址清零,以及在将每一组视频流数据从存储空间中读出之后,将初始读地址清零。
在一种可能的实施方式中,本发明实施例提供的方法中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,包括:在将该组视频流数据中第M行视频流数据的第一个像素点写入存储空间中时,根据读地址将视频流数据从存储空间中读出。
本发明实施例提供的方法中,在视频流数据的写入与读取过程中,由于读写操作同步进行,因此,在将该组视频流数据中第M行视频流数据的第一个像素点写入存储空间中时,根据读地址将视频流数据从存储空间中读出,在保证实现视频流数据行块转换的同时,提高了视频流数据行块转换的效率。
本发明实施例提供的一种视频流数据的处理装置,如图7所示,该装置包括:接收单元702,用于接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;处理单元704,用于针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数。
本发明实施例提供的装置中,将接收到的视频流数据以每M行为一组进行分组,针对每一组视频流数据,根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,也即将下一组视频流数据写入到该存储空间中已经读取出的视频流数据的存储位置处,读写操作同步进行,避免未读取的视频流数据被写入的下一组视频流数据所覆盖,充分利用存储空间空置状态下的空间资源,与现有技术中采用乒乓操作需要使用两个存储空间相比,只需要使用一个存储空间,节省了存储空间资源。
在一种可能的实施方式中,本发明实施例提供的装置中,读地址和写地址均周期性变化,针对每一周期内的第n组视频流数据:处理单元704根据初始写地址以及第一变化规则为视频流数据分配写地址,具体用于:计算i×(n-1)除以初始写地址的地址位宽的余数m,将初始写地址的低m比特位移到高m比特位生成写地址;处理单元704根据初始读地址以及第二变化规则生成读地址,具体用于:计算i×n除以初始读地址的地址位宽的余数j,将初始读地址的低j比特位移到高j比特位生成读地址;其中,n为正整数。
本发明实施例提供的装置中,根据初始写地址和初始读地址通过简单的移位操作就可以得出所需要的读取地址,初始写地址和初始读地址的地址位宽相同且固定,通过移位操作得到的写地址和读地址呈现周期性变化,因此,在计算任一组视频流数据的写地址和读地址的过程中,只需计算一个初始写地址和初始读地址,根据该组视频流数据在周期内的位置,通过移位操作即可得出该组视频流数据的写地址和读地址,计算简单,在视频流数据的写入与读取过程中,仅使用一个存储空间,减少了写地址和读地址的数量,而且针对每组视频流数据,其写地址移位m为i×(n-1)除以所述初始写地址的地址位宽的余数,读地址移位j为i×n除以所述初始读地址的地址位宽的余数,因此,该组视频流数据的读地址相当于将写地址的低i位移到高i位,由于视频流数据每M行为一组,M为2的i次方,而该组视频流数据的读地址相当于将写地址的低i位移到高i位,从而将该组视频流数据按行写入,按列读出,实现了视频流数据的行块转换。
在一种可能的实施方式中,本发明实施例提供的装置中,初始写地址的地址位宽以及初始读地址的地址位宽相同,且是根据M值的大小以及视频流数据中每行的像素点数所确定的。
在一种可能的实施方式中,本发明实施例提供的装置中,处理单元704还用于:在将每一组视频流数据写入存储空间之后,将初始写地址清零,以及在将每一组视频流数据从存储空间中读出之后,将初始读地址清零。
在一种可能的实施方式中,本发明实施例提供的装置中,处理单元704在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,具体用于:处理单元704将该组视频流数据中第M行视频流数据的第一个像素点写入存储空间中时,根据读地址将视频流数据从存储空间中读出。
本发明实施例提供的装置中,在视频流数据的写入与读取过程中,由于读写操作同步进行,因此,在将该组视频流数据中第M行视频流数据的第一个像素点写入存储空间中时,根据读地址将视频流数据从存储空间中读出,在保证实现视频流数据行块转换的同时,提高了视频流数据行块转换的效率。
本发明实施例提供的视频流数据的处理装置,可以集成在各种视频设备中,对视频流数据进行行块转换,其中,接收单元702可以采用信号接收器或接收机,处理单元704可以采用CPU等处理器。
综上所述,本发明实施例提供的一种视频流数据的处理方法及装置,将接收到的视频流数据以每M行为一组进行分组,针对每一组视频流数据,根据写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入存储空间中时,根据读地址将视频流数据从存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,也即将下一组视频流数据写入到该存储空间中已经读取出的视频流数据的存储位置处,读写操作同步进行,避免未读取的视频流数据被写入的下一组视频流数据所覆盖,充分利用存储空间空置状态下的空间资源,只需要使用一个存储空间,节省了存储空间资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种视频流数据的处理方法,其特征在于,该方法包括:
接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;
针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据所述写地址将视频流数据写入预先配置的存储空间中;
在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据所述读地址将视频流数据从所述存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数;
其中,所述读地址和所述写地址均周期性变化,针对每一周期内的第n组视频流数据:
根据初始写地址以及第一变化规则为视频流数据分配写地址,包括:计算i×(n-1)除以所述初始写地址的地址位宽的余数m,将所述初始写地址的低m比特位移到高m比特位生成所述写地址;
根据初始读地址以及第二变化规则生成读地址,包括:计算i×n除以所述初始读地址的地址位宽的余数j,将所述初始读地址的低j比特位移到高j比特位生成所述读地址;其中,n为正整数。
2.根据权利要求1所述的方法,其特征在于,所述初始写地址的地址位宽以及所述初始读地址的地址位宽相同,且是根据所述M值的大小以及所述视频流数据中每行的像素点数所确定的。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:在将每一组视频流数据写入所述存储空间之后,将所述初始写地址清零,以及在将每一组视频流数据从所述存储空间中读出之后,将所述初始读地址清零。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,包括:
在将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出。
5.一种视频流数据的处理装置,其特征在于,该装置包括:
接收单元,用于接收视频流数据,并将接收到的视频流数据以每M行为一组进行分组;
处理单元,用于针对每一组视频流数据,根据初始写地址以及第一变化规则为视频流数据分配写地址,并根据所述写地址将视频流数据写入预先配置的存储空间中,在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据初始读地址以及第二变化规则生成读地址,根据所述读地址将视频流数据从所述存储空间中读出,并将下一组视频流数据写入已读取出的视频流数据所在的存储空间,其中,M为2的i次方,i为正整数;
其中,所述读地址和所述写地址均周期性变化,针对每一周期内的第n组视频流数据:
所述处理单元根据初始写地址以及第一变化规则为视频流数据分配写地址,具体用于:计算i×(n-1)除以所述初始写地址的地址位宽的余数m,将所述初始写地址的低m比特位移到高m比特位生成所述写地址;
所述处理单元根据初始读地址以及第二变化规则生成读地址,具体用于:计算i×n除以所述初始读地址的地址位宽的余数j,将所述初始读地址的低j比特位移到高j比特位生成所述读地址;其中,n为正整数。
6.根据权利要求5所述的装置,其特征在于,所述初始写地址的地址位宽以及所述初始读地址的地址位宽相同,且是根据所述M值的大小以及所述视频流数据中每行的像素点数所确定的。
7.根据权利要求6所述的装置,其特征在于,所述处理单元还用于:在将每一组视频流数据写入所述存储空间之后,将所述初始写地址清零,以及在将每一组视频流数据从所述存储空间中读出之后,将所述初始读地址清零。
8.根据权利要求5-7中任一项所述的装置,其特征在于,所述处理单元在将该组视频流数据中第M行视频流数据写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出,具体用于:
所述处理单元将该组视频流数据中第M行视频流数据的第一个像素点写入所述存储空间中时,根据所述读地址将视频流数据从所述存储空间中读出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610414793.0A CN106101712B (zh) | 2016-06-13 | 2016-06-13 | 一种视频流数据的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610414793.0A CN106101712B (zh) | 2016-06-13 | 2016-06-13 | 一种视频流数据的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101712A CN106101712A (zh) | 2016-11-09 |
CN106101712B true CN106101712B (zh) | 2019-07-16 |
Family
ID=57846505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610414793.0A Active CN106101712B (zh) | 2016-06-13 | 2016-06-13 | 一种视频流数据的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101712B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992234B (zh) | 2017-12-29 | 2020-11-17 | 浙江宇视科技有限公司 | 图像数据读取方法、装置、电子设备及可读存储介质 |
CN108257582B (zh) * | 2018-01-30 | 2020-10-09 | 广东中星微电子有限公司 | 一种图像的显示缓冲方法和装置 |
CN111381837B (zh) * | 2018-12-28 | 2023-07-18 | 广州众诺微电子有限公司 | 一种烧录方法、系统及可读存储介质 |
CN110351582B (zh) * | 2019-07-11 | 2020-12-11 | 视联动力信息技术股份有限公司 | 一种视频流数据的处理方法、系统及装置和存储介质 |
CN112882657B (zh) * | 2021-02-08 | 2023-07-14 | 浙江大华技术股份有限公司 | 数据读取方法及装置、存储介质、电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257313A (zh) * | 2007-04-10 | 2008-09-03 | 深圳市同洲电子股份有限公司 | 一种基于fpga实现的解卷积交织器及解卷积交织方法 |
CN101420233A (zh) * | 2008-12-17 | 2009-04-29 | 航天恒星科技有限公司 | 一种比特交织器及交织方法 |
CN101577556A (zh) * | 2009-06-17 | 2009-11-11 | 北京九方中实电子科技有限责任公司 | 一种矩形交织的实现方法 |
CN103685961A (zh) * | 2013-12-24 | 2014-03-26 | 南京理工大学 | 一种利用单片sram实现视频数据同步实时处理的系统 |
CN203813870U (zh) * | 2014-05-12 | 2014-09-03 | 中国航空无线电电子研究所 | 一种单通道缓存视频旋转装置 |
CN104835111A (zh) * | 2015-04-07 | 2015-08-12 | 无锡艾立德智能科技有限公司 | 一种基于fpga的单sram实现乒乓算法的方法及实时红外图像处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7111093B2 (en) * | 2003-06-23 | 2006-09-19 | Intel Corporation | Ping-pong buffer system having a buffer to store a subset of data from a data source |
-
2016
- 2016-06-13 CN CN201610414793.0A patent/CN106101712B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257313A (zh) * | 2007-04-10 | 2008-09-03 | 深圳市同洲电子股份有限公司 | 一种基于fpga实现的解卷积交织器及解卷积交织方法 |
CN101420233A (zh) * | 2008-12-17 | 2009-04-29 | 航天恒星科技有限公司 | 一种比特交织器及交织方法 |
CN101577556A (zh) * | 2009-06-17 | 2009-11-11 | 北京九方中实电子科技有限责任公司 | 一种矩形交织的实现方法 |
CN103685961A (zh) * | 2013-12-24 | 2014-03-26 | 南京理工大学 | 一种利用单片sram实现视频数据同步实时处理的系统 |
CN203813870U (zh) * | 2014-05-12 | 2014-09-03 | 中国航空无线电电子研究所 | 一种单通道缓存视频旋转装置 |
CN104835111A (zh) * | 2015-04-07 | 2015-08-12 | 无锡艾立德智能科技有限公司 | 一种基于fpga的单sram实现乒乓算法的方法及实时红外图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106101712A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101712B (zh) | 一种视频流数据的处理方法及装置 | |
CN101715047B (zh) | 超高分辨率视频处理设备和方法 | |
CN103995684A (zh) | 超高分辨率平台下的海量影像并行处理显示方法及系统 | |
CN105245759A (zh) | 一种实现图像同步显示的方法及装置 | |
CN109992234A (zh) | 图像数据读取方法、装置、电子设备及可读存储介质 | |
CN104219532A (zh) | 确定小物体区域的方法、视频帧之间插补帧的方法和装置 | |
CN103581505A (zh) | 一种数字视频信号处理装置及方法 | |
CN106846255A (zh) | 图像旋转实现方法及装置 | |
CN109995467A (zh) | 一种资源映射方法及装置、设备 | |
CN103389413B (zh) | 一种频谱直方图的实时统计方法 | |
CN109753157A (zh) | 显示屏的手势控制方法及装置 | |
CN111710313B (zh) | 显示面板水波纹的消除方法及消除装置、显示装置 | |
CN109741385A (zh) | 一种图像处理系统、方法、装置、电子设备及存储介质 | |
CN103092567B (zh) | 一种基于单幅图像的真随机数序列生成方法 | |
CN102103740A (zh) | 一种写入地址和宽度不对齐图像的处理方法和处理电路 | |
CN103338159B (zh) | 轮询调度实现方法和装置 | |
CN105702233B (zh) | 一种图像数据取窗方法及装置 | |
CN108734556A (zh) | 推荐应用的方法及装置 | |
CN106155924B (zh) | 图片合并方法、装置及智能设备 | |
CN117216459A (zh) | 卷积运算方法、卷积运算装置、电子设备及存储介质 | |
CN109658094A (zh) | 随机游走、基于集群的随机游走方法、装置以及设备 | |
CN110428453B (zh) | 数据处理方法、装置、数据处理设备及存储介质 | |
CN114119661A (zh) | 一种目标追踪处理器、目标追踪方法及装置 | |
JP2010118058A (ja) | トリプル・バッファリングを使用するデータを処理する方法 | |
CN113067788A (zh) | 一种多用户信号模拟方法以及多用户信号模拟装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |