CN102256131B - 视频编码中数据帧存储空间的配置方法 - Google Patents

视频编码中数据帧存储空间的配置方法 Download PDF

Info

Publication number
CN102256131B
CN102256131B CN 201110212313 CN201110212313A CN102256131B CN 102256131 B CN102256131 B CN 102256131B CN 201110212313 CN201110212313 CN 201110212313 CN 201110212313 A CN201110212313 A CN 201110212313A CN 102256131 B CN102256131 B CN 102256131B
Authority
CN
China
Prior art keywords
stream image
address
dram
main bit
bit stream
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
Application number
CN 201110212313
Other languages
English (en)
Other versions
CN102256131A (zh
Inventor
胡红旗
陈君辉
陈剑军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Silan Microelectronics Co Ltd
Original Assignee
Hangzhou Silan Microelectronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Silan Microelectronics Co Ltd filed Critical Hangzhou Silan Microelectronics Co Ltd
Priority to CN 201110212313 priority Critical patent/CN102256131B/zh
Publication of CN102256131A publication Critical patent/CN102256131A/zh
Application granted granted Critical
Publication of CN102256131B publication Critical patent/CN102256131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种视频编码中数据帧存储空间的配置方法,其包括如下步骤:步骤一、根据视频或图像分辨率的大小,确定存储视频或图像所需的DRAM空间的大小;步骤二、将数据帧的存取分成按行格式存取和按宏块格式存取:对于待编码的数据帧采用行格式存取,对于编码后的重构帧以及参考帧采用宏块格式存取;步骤三、分别计算行格式存取的存储空间分配、宏块格式存取的存储空间分配、行格式存取的地址和宏块格式存取的地址,所述的存储空间为DRAM。本发明通过将整行或者整个宏块的数据存储在DRAM的同一个页中并对所需数据的存取操作,可以减少像素数据存取过程中改变DRAM页地址的次数,提高存取操作的效率。

Description

视频编码中数据帧存储空间的配置方法
所属技术领域
本发明属于信号处理中的图像和视频编解码技术领域,特别涉及在支持多路、多码流的视频编码过程中配置帧存储空间的方法。
背景技术
在视频监控应用中,对于多路、多码流编码的支持已成为编码器必须具备的功能。相比于单路、单码流编码,多路、多码流编码在多个方面面临更为复杂的问题,其中对于帧存储空间的分配以及帧存储空间存取方式方面尤其如此。特别是在需要根据不同的应用,灵活配置编码图像分辨率及编码路数时,这一问题更为突出。目前已知的相关文献中对此问题并无特别的涉及。
图1所示为现有的考虑编码器内部数据流向的编码器结构示意图。图中标示的各数据操作及相关接口说明如下:
[1]待编码视频数据通过存储器控制器从视频输入处理模块写入外部存储器操作接口。
[2]待编码当前帧数据通过存储器控制器从外部存储器读出到视频编码模块操作接口。
[3]编码当前帧所需参考帧数据通过存储器控制器从外部存储器读出到视频编码模块操作接口。
[4]编码当前帧所得重构帧数据通过存储器控制器从视频编码模块写入到外部存储器操作接口。
[5]编码后的码流数据从视频编码模块写入外部存储器操作。
[6]外设接口数据操作,包括:读写寄存器,读预览数据,读码流数据等。
[7]存储器控制器接口,上述读写操作均须通过该接口,在存储器控制器的控制下写入外部存储器或者从外部存储器中读出。
[8]外部存储器物理接口。
[9]视频数据输入物理接口。
[10]外设物理接口。
通常情况下,视频编码器需要4帧大小的帧缓存,如图2所示。图中,Curr0用于存储当前待编码的图像帧数据,由视频输入处理模块通过存储器控制器将数据写入外部存储器中,视频编码模块通过存储器控制器从外部存储器中读出数据。Curr1用于存储编码Curr0的过程中需要写入的下一个待编码帧的图像数据,由视频输入处理模块通过存储器控制器将数据写入外部存储器中。Ref用于存储编码Curr0所需的参考帧数据,是前一个编码帧的重构帧,由视频编码模块通过存储器控制器从外部存储器中读出数据。Rec用于存储编码Curr0的过程中得到的重构帧数据,用于下一帧编码的参考帧,由视频编码模块通过存储器控制器写入外部存储器。编码过程中,轮转操作如图2所示,每4帧一个循环。
上述读写操作中,既有以像素行为单位的操作,又有以像素宏块为单位的操作,这就要求在上述编码器所需的帧存储空间中,对不同的帧数据按照不同的格式存储。
考虑到上述这些情况,在多路、多分辨率编码的情况下,帧存储空间的配置是一个必须要解决的问题。
发明内容
为了适应多路、多码流视频编码的需要,本发明专利提出一种在多路、多码流视频编码中数据帧存储空间的配置方法。
本发明所述“主码流图像”是指多路视频编码中需要正常编码的某一路图像,“子码流图像”是指某一路图像中对应于“主码流图像”的降采样后的图像。多路视频中的每一路都有“主码流图像”和对应的“子码流图像”。编码系统分别对每一路的“主码流图像”和“子码流图像”进行编码。一般地,“子码流图像”编码后的码率要小于“主码流图像”编码后的码率,根据网络带宽的情况和实际应用的需要,确定单独传输“子码流图像”编码后的码流,或者单独传输“主码流图像”编码后的码流,或者同时传输“子码流图像”编码后的码流和“主码流图像”编码后的码流。
视频编码中数据帧存储空间的配置方法,包括如下步骤:
步骤一、根据视频或图像分辨率的大小,确定存储视频或图像所需的DRAM空间的大小;
步骤二、将数据帧的存取分成按行格式存取和按宏块格式存取:对于待编码的数据帧采用行格式存取,对于编码后的重构帧以及参考帧采用宏块格式存取;
步骤三、分别计算行格式存取的存储空间分配、宏块格式存取的存储空间分配、行格式存取的地址和宏块格式存取的地址,所述的存储空间为DRAM。
所述行格式存取的存储空间分配的方法:
设主码流图像一个像素行中亮度数据的个数为Wm,主码流图像中像素行数为Hm,子码流图像一个像素行中亮度数据的个数为Ws,子码流图像中像素行数为Hs,每个像素位数为1个字节,一个DRAM页的大小为S个存储空间,其中每个存储空间中存储B个字节,那么,根据Wm,Ws和S*B的关系,有如下两种方式:
(1)当(Wm+Ws)<=S*B时,则一个DRAM页中存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的一行亮度数据;存储全部主码流图像的亮度数据所需的DRAM页中剩余的部分用于存储全部的子码流图像的亮度数据;
(2)当(Wm+Ws)>S*B且(Wm+Ws/2)<=S*B时,则一个DRAM页中存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的1/2行的亮度数据;存储全部主码流图像的区域所需的DRAM页中剩余的部分用于存储全部的子码流图像数据。
所述按像素宏块格式存取的DRAM空间分配的方法为:
设亮度宏块的大小为N*N个像素,N为正整数,每个像素的位数为1个字节,一个DRAM页的大小为S个存储空间,其中每个存储空间中存储B个字节,根据N*N和S*B的关系,有如下两种情形:
(1)当S*B/N*N>=4,且S*B/N*N<5时,则一个DRAM页中存储如下X1、Y1、Z1或者X1、Y1、U1三种数据,其中X1表示主码流图像的两个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y1表示主码流图像的两个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z1表示子码流图像的一个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U1表示子码流图像的两个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2。
(2)当S*B/N*N>=8,且S*B/N*N<9时,则一个DRAM页中至少存储如下X2、Y2、Z2或者X2、Y2、U2三种数据,其中X2表示主码流图像的四个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y2表示主码流图像的四个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z2表示子码流图像的两个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U2表示子码流图像的四个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2。
所述像素行格式存取的地址产生方法:
根据DRAM的特点,存取DRAM特定地址空间的地址包括页地址和列地址,其中页地址指向DRAM空间中的页,列地址指向DRAM行中的某个存储单元;页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生。上述页基地址在系统设计时指定或通过寄存器配置,上述页偏移地址由计数器通过对像素行数计数产生,上述列基地址在系统设计时指定或通过寄存器配置,上述列偏移地址由计数器对行内的像素个数计数产生。
所述像素宏块格式存取地址的产生方法为:
像素宏块格式存取地址包括页地址和列地址,页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生。上述页基地址在系统设计时指定或通过寄存器配置,上述页偏移地址根据宏块在图像中的垂直和水平方向的位置计算得到,上述列基地址在系统设计时指定或通过寄存器配置,上述列偏移地址根据宏块在图像中的水平方向的位置和宏块内数据计数器的值组合得到。
具体的,本发明中所采取的一组参数为:S=256,B=4,N=16,Wm=720,Ws=352,Hm=576,Hs=288。
所述该组参数按行格式存储在DRAM中时:主码流图像的亮度部分,占据0到575个DRAM页中0~191的地址空间;子码流图像的亮度部分,占据0到575个DRAM页中192~236的地址空间;主码流图像的色度U分量部分,占据从576到719共144个DRAM页中0~191的地址空间;子码流图像的色度U分量部分,占据从576到719共144个DRAM页中192~236的地址空间;主码流图像的色度V分量部分,占据从720到863共144个DRAM页中0~191的地址空间;子码流图像的色度V分量部分,占据从720到863共144个DRAM页中192~236的地址空间。上述U、V分量存储是分开存储的情形,U、V分量也可以交织的组合存储,当为U、V分量以交织的方式组合存储时,主码流图像的色度部分(包括U、V分量),占据从576到863共288个DRAM页中0~191的地址空间;子码流图像的色度部分(包括U、V分量),占据从576到863共288个DRAM页中192~236的地址空间。
所述该组参数按宏块格式存储在DRAM中时:主码流图像的亮度部分,占据从0到809共810个DRAM页中0~128的地址空间;子码流图像的亮度部分,占据从0到395共396个DRAM页中192~256的地址空间。主码流图像的色度部分(包括U、V分量),占据从0到809共810个DRAM页中128~191的地址空间。子码流图像的色度部分(包括U、V分量),占据从576到773共198个DRAM页中192~236的地址空间。
具体的,本发明中所采取的了另一组参数为:S=512,B=4,N=16,Wm=1280,Ws=352,Hm=720,Hs=288。
所述该组参数按行格式存储在DRAM中时:主码流图像的亮度部分,占据从0到719共720个DRAM页中0~319的地址空间;子码流图像的亮度部分,占据从0到287共288个DRAM页中384~471的地址空间;主码流图像的色度U分量部分,占据从720到839共120个DRAM页中0~479的地址空间;子码流图像的色度U部分,占据从288到359共72个DRAM页中384~471的地址空间;主码流图像的色度V分量部分,占据从840到959共120个DRAM页中0~479的地址空间。子码流图像的色度V分量部分,占据从360到431共72个DRAM页中384~471的地址空间。上述U、V分量的存储是分开存储的情形,U、V分量也可以交织方式的组合存储。U、V分量以交织方式组合存储时,主码流图像的色度部分(包括UV分量),占据从720到959共240个DRAM页中0~479的地址空间。子码流图像的色度部分(包括UV分量),占据从288到431共144个DRAM页中384~471的地址空间。
所述该组参数按宏块格式存储在DRAM中时:主码流图像的亮度部分,占据从0到899共900个DRAM页中0~255的地址空间;子码流图像的亮度部分,占据从0到197共198个DRAM页中384~511的地址空间;主码流图像的色度部分(包括U、V分量),占据从0到899共900个DRAM页中256~383的地址空间;子码流图像的色度部分(包括U、V分量),占据从198到297共99个DRAM页中384~511的地址空间。
本发明的有益效果体现在:针对图像编码中不同的处理阶段数据存取的方式不同,分别采取像素行格式的帧存储器的配置和像素宏块格式的帧存储器的配置,将整行,或者整个宏块的数据存储在DRAM的同一个页中,同时以整行,或者整个宏块的形式实现对所需数据的存取操作,减少像素数据存取过程中改变DRAM页地址的次数,提高存取操作的效率。同时将主码流图像和该主码流图像对应的子码流图像对应存储,可简化存取主码流图像和子码流图像的地址产生逻辑。尤其在需要实现多路编码,每路的主码流图像分辨率不同,且子码流图像分辨率也不同的情况下,所述简化存取主码流图像和子码流图像的地址产生逻辑,带来了更快的处理速度。
附图说明
图1为现有的视频编码器模块结构框图;
图2为现有的视频编码器所需的帧存储空间及其轮转顺序示意图;
图3为本发明实施例的宏块在图像中的位置示意图;
图4为本发明实施例一的DRAM存储空间示意图;
图5为本发明的实施例一中按行操作的DRAM帧存储空间分配方法示意图,U分量和V分量分别放置;
图6为本发明的实施例一中按行操作的DRAM帧存储空间分配方法示意图,U分量和V分量组合放置;
图7为本发明的实施例一中按宏块格式操作的DRAM帧存储空间分配方法示意图。
图8为本发明实施例二中的DRAM存储空间示意图;
图9为本发明实施例二中按行操作的DRAM帧存储空间分配方法示意图,U分量和V分量分别放置;
图10为本发明实施例二中按行操作的DRAM帧存储空间分配方法示意图,U分量和V分量组合放置;
图11为本发明的实施例二中按宏块格式操作的DRAM帧存储空间分配方法示意图。
具体实施方式
以下结合附图和实施例对本发明内容进一步说明。
本实施例的视频编码中配置数据帧的存储空间的方法,包括如下步骤:
步骤一、根据视频或图像分辨率的大小,确定存储视频或图像所需的DRAM(Dynamic Random Access Memory,动态随机存储器)空间的大小;
步骤二、将数据帧的存取分成按行格式存取和按宏块格式存取:对于待编码的数据帧采用行格式存取,对于编码后的重构帧以及参考帧采用宏块格式存取;。
步骤三、分别计算行格式存取的存储空间分配、宏块格式存取的存储空间分配、行格式存取的地址和宏块格式存取的地址,在本实施例中采用DRAM存储:
所述行格式存取的存储空间分配的方法:
设主码流图像一个像素行中亮度数据的个数为Wm,主码流图像中像素行数Hm,子码流图像一个像素行中亮度数据的个数为Ws,子码流图像中像素行数为Hs,每个像素位数为1个字节即8bit,一个DRAM页(page)的大小为S个存储空间,每个存储空间中存储B个字节。
为了提高数据存取的效率,减少像素行存取过程中可能存在的DRAM的页面切换次数,像素行格式存取的原则是将同一像素行的数据存储在同一个DRAM页中。根据Wm,Ws和S*B的关系,采用如下两种方式:
(1)当(Wm+Ws)<=S*B时,则一个DRAM页中可存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的一行亮度数据;存储全部主码流图像的亮度数据所需的DRAM页中剩余的部分用于存储全部的子码流图像的亮度数据。
(2)当(Wm+Ws)>S*B且(Wm+Ws/2)<=S*B时,则一个DRAM页中可存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的1/2行的亮度数据;子码流图像的行数一般小于等于主码流行数的一半,存储全部主码流图像的区域所需的DRAM页中剩余的部分用于存储全部的子码流图像数据。
满足上述两种条件时,对于主码流图像中的色度数据和子码流图像中的色度数据,依亮度和色度之间的比例关系,如Y:U:V=4:2:0时(Y表示亮度信号,U、V表示色度信号),此时存储色度数据所需的DRAM行数为存储亮度数据DRAM行数的一半;如Y:U:V=4:2:2时,存储色度数据所需的DRAM页数与存储亮度数据所需DRAM页数是一样的。存储全部主码流图像的色度数据所需的DRAM页中剩余的部分可以存储全部的子码流图像的色度数据。
根据上述两种情况,合理选择S和B的值,以满足上述两种关系。
所述按像素宏块格式存取的存取空间分配的方法:
设亮度宏块的大小为N*N个像素,为了提高数据存取的效率,减少宏块存取过程中可能存在的DRAM的页面切换次数,宏块格式存取的原则是将同一个宏块的数据存储在同一个DRAM页中,根据N*N和S*B的关系,本实施例中考虑如下两种情况:
(1)当S*B/N*N>=4,且S*B/N*N<5时,则一个DRAM页中存储如下X1、Y1、Z1或者X1、Y1、U1三种数据:X1表示主码流图像的两个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y1表示主码流图像的两个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z1表示子码流图像的一个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U1表示子码流图像的两个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2。一般主码流图像中的亮度宏块个数为子码流图像中亮度宏块个数的4倍及以上,按上述存储方式,存储主码流图像亮度宏块所需的DRAM页中,可完整的存储主码流图像的色度宏块、子码流图像的亮度宏块和子码流图像的色度宏块。
(2)当S*B/N*N>=8,且S*B/N*N<9时,则一个DRAM页中存储如下X2、Y2、Z2或者X2、Y2、U2三种数据::X2表示主码流图像的四个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y2表示主码流图像的四个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z2表示子码流图像的两个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U2表示子码流图像的四个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2。一般主码流图像中的亮度宏块个数为子码流图像中亮度宏块个数的4倍及以上,按上述存储方式,存储主码流图像亮度宏块所需的DRAM页中,可完整的存储主码流图像的色度宏块、子码流图像的亮度宏块和子码流图像的色度宏块。
所述像素行格式存取的地址产生方法:
根据DRAM的特点,像素行格式存取地址包括页地址和列地址。其中页地址指向DRAM空间中的页,列地址指向DRAM页中的某个存储单元,页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生。上述页基地址可根据需要在系统设计时指定,也可通过寄存器配置;上述页偏移地址由计数器通过对像素行数计数产生;上述列基地址可根据需要在系统设计时指定,也可通过寄存器配置;上述列偏移地址由计数器对行内的像素个数计数产生。
所述像素宏块格式存取地址的产生方法:
根据DRAM的特点,像素宏块格式存取地址包括页地址和列地址,页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生。上述页基地址可根据需要在系统设计时指定,也可通过寄存器配置;上述页偏移地址根据宏块在图像中的垂直和水平方向的位置计算得到;上述列基地址可根据需要在系统设计时指定,也可通过寄存器配置;上述列偏移地址根据宏块在图像中的水平方向的位置和宏块内数据计数器的值组合得到。宏块在图像中的垂直和水平方向上的位置如图3所示,图中的gobx标示了宏块在图像中的水平方向的位置,取值范围为[0,W/N],goby标示了宏块在图像中的垂直方向的位置,取值范围为[0,H/N],其中W为图像的宽度,H为图像的高度。
下面,通过实施例一对视频编码中帧存储空间的配置方法进行具体说明。
所述实施例一的参数选择为:S=256,B=4,N=16,Wm=720,Ws=352,Hm=576,Hs=288。YUV的格式为4:1:1。DRAM的存储空间如图4所示,包括4个Bank(又称“组”),每个Bank中包括4096page(又称“页”),每页的容量为256x32比特,即256x4字节,S=256,B=4。将整个DRAM均分成图中所示的16块区域。对于所述实施例的参数配置,所分隔的16块区域的任一块区域可用来按行或者按宏块格式存储一路的主码流图像和子码流图像。后续所述的帧存储空间的分布,是针对16块区域中的任一个区域所作的,适合于16块空间中的任一个区域。所述16块区域可配置为满足多路、多码流编码的应用。
该组参数满足条件Wm+Ws>S*B,Wm+Ws/2<=S*B时,一个DRAM页中可存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的1/2行的亮度数据。
图5所示为按像素行格式操作的DRAM帧存储空间的分布。对于亮度分量,主码流图像分辨率为720x576,一行的像素亮度数据个数为720,即180x32bit,一个DRAM页的256x32空间里可存储的亮度行的个数:256x32/180x32=1,考虑到与宏块存储的兼容性,取192x32个空间存储一行的亮度像素数据,剩余的64x32的存储空间用于存储子码流的亮度数据。对于色度分量,主码流图像分辨率为720x576时,一行色度数据个数为360个U,360个V,U/V分开存储。以U分量为例,360x8=90x32,存储一行亮度的空间可以存储两行的U数据,考虑到与宏块存储的兼容性,取192x32个空间存储两行的色度U数据,剩余的64x32用于存储子码流的色度U数据。对于亮度分量子码流图像分辨率为352x288,一行的亮度数据(88x32)需要存到两个DRAM页中(剩余的64x32),所需总的DRAM页为288x2=576。对于子码流的色度分量,一行的色度U分量数据(44x32)需要存到一个DRAM页中剩余的64x32的空间中,所需的总的DRAM页为144。
即写入主码流的288行色度U数据所需的DRAM页的个数为144,可同时写入主码流和子码流的色度U数据。对色度V数据,有同样的结论。
图5中D1-Y部分为主码流图像的亮度部分,占据576个DRAM页中0~191的地址空间。CIF-Y部分为子码流图像的亮度部分,占据576个DRAM页中192~236的地址空间。D1-U部分为主码流图像的色度U分量部分,占据144个DRAM页中0~191的地址空间。CIF-U部分为子码流图像的色度U分量部分,占据144个DRAM页中192~236的地址空间。D1-V部分为主码流图像的色度V分量部分,占据144个DRAM页中0~191的地址空间。CIF-V部分为子码流图像的色度V分量部分,占据144个DRAM页中192~236的地址空间。
所述的U、V分量可分开存储,也可以交织的组合存储,图6为U、V分量以交织的方式组合存储的示意图。D1-UV部分为主码流图像的色度部分(包括U、V分量),占据288个DRAM页中0~191的地址空间。CIF-UV部分为子码流图像的色度部分(包括U、V分量),占据288个DRAM页中192~236的地址空间。
按像素行方式存储时,存取外部DRAM的页地址和页内列地址的生成方式包括如下四种情况:
1.主码流图像(分辨率720x576)的亮度地址产生:
页基址row_base:0
页偏移row_offset:m_y_row_cnt,其中,m_y_row_cnt为10位二进制计数器,该计数器用于对主码流图像中亮度像素数据的行数进行计数,计数范围:0~575。
列基址col_base:0
列偏移col_offset:m_y_col_cnt,其中m_y_col_cnt为8位二进制计数器,该计数器用于对主码流图像中亮度像素数据一行内的数据个数以四个像素为单位进行计数,计数范围:0~180。
2.主码流图像(分辨率720x576)的色度U分量地址产生:
页基址row_base:576
页偏移row_offset:m_u_row_cnt[8:1],其中m_u_row_cnt为9位二进制计数器,该计数器对主码流图像中色度U分量像素数据的行数进行计数,该9位行计数器的计数范围:0~287(包括色度U分量和V分量),m_row_cnt[8:1]表示取m_u_row_cnt的高8位。
列基址col_base:0
列偏移col_offset:m_u_row_cnt[0]*90+m_u_col_cnt,其中m_u_row_cnt[0]表示取该m_u_row_cnt的最低1位;m_u_col_cnt为7位二进制计数器,该计数器对主码流图像中色度U分量像素数据一行内的数据个数以四个像素为单位进行计数,计数范围0~89(一个DRAM页中存储两个色度U分量像素行)。
主码流图像色度V分量的情况除行基址外,其他完全一致,色度V分量的页基址row_base:720。
3.子码流图像(分辨率352×288)的亮度数据映射:
页基址row_base:0
页偏移row_offset:s_y_row_cnt+s_y_col_cnt[6],其中s_y_row_cnt为9位二进制计数器,该计数器用于对子码流亮度像素数据中的像素行数进行计数,计数范围:0~287;s_y_col_cnt为7位二进制计数器,用于对子码流亮度像素数据中的一行内的像素数据个数以四个像素为单位进行计数,s_y_col_cnt计数范围0~89(一个DRAM页中写两个色度U分量像素行),s_y_col_cnt[6]表示取s_y_col_cnt的最高位。
列基址col_base:192
列偏移col_offset:s_y_col_cnt[5:0],计数范围0~43。s_y_col_cnt[5:0]表示取s_y_col_cnt中的低6位。
4.子码流图像(分辨率352×288)的色度U分量地址映射:(176x144)
页基址row_base:576
页偏移row_offset:s_u_row_cnt[8:1],其中,s_u_row_cnt为9位二进制计数器,该计数器用于对子码流色度U分量像素数据中的像素行数进行计数,计数范围:0~287,包括U分量和V分量的像素行各144行;s_u_row_cnt[8:1]表示取s_u_row_cnt中的高8位。
列基址col_base:192
列偏移col_offset:s_u_col_cnt,其中s_u_col_cnt位6位二进制计数器,该计数器用于对色度U分量像素数据一行内的数据个数以四个像素为单位进行计数,计数范围0~43。
子码流色度V分量的情况除页基址外,其他完全一致。子码流色度V分量的页基址row_base:720。
图7所示为按宏块格式操作的DRAM帧存储空间分布。
1.亮度数据:
主码流图像分辨率为720x576,每行包括720个像素点,分布在45个行向MB(Macro Block,宏块)中,每个MB的大小为N*N,N=16,图像的高度为576,分布在36个列向MB中,即一帧的主码流图像中包含:45x36=1620个MB。子码流图像(分辨率352x288)的亮度分量,每行的宽度为352个像素点,分布在22个行向MB中,图像的高度为288,分布在18个列向MB中,即一帧的子码流图像中包含:22x18=396个MB。满足条件:S*B/N*N>=4,S*B/N*N<5,一个DRAM页中存储:所需存储空间分别为大小为2*N*N的主码流图像的两个亮度宏块和大小为2*N*N/2的两个色度宏块,以及所需存储空间为N*N的子码流图像的一个亮度宏块或者所需存储空间为2*N*N/2的子码流图像的两个色度宏块。一帧的主码流图像的亮度数据写入DRAM时,所需的DRAM页数为:1620/2=810。考虑地址映射的便利性,写入一个MB行(GOB,Group of Block,宏块组),即45个行向MB需要45/2个DRAM页,取整为23个DRAM页。写入36个MB行需要的DRAM页的个数为:23x36=828。一帧的子码流图像的亮度数据写入DRAM时,写入一个MB行(GOB),即22个行向MB需要22/1=22个DRAM页,写入18个MB行需要的DRAM页的个数为:22x18=396。
2.色度数据:
主码流图像分辨率为720x576,行偏移地址为0,列偏移地址为128,每行色度的宽度为720个像素点(包括360个U和360个V),分布在45个行向MB中,图像的高度为288,分布在36(288/8)个列向MB中,即主码流图像一帧的图像中包含:45x36=1620个色度MB。子码流图像分辨率为352x288的情况,行偏移地址为576,列偏移地址为192,每行的色度宽度为352个像素(176个U和176个V),分布在22个行向MB中,图像的高度为144,分布在18(144/8)个列向MB中,即一帧的子码流图像中包含:22x18=396个色度MB(每个色度MB的数据量为32个32bit)。满足条件:S*B/N*N>=4,S*B/N*N<5,一帧的主码流图像的色度数据写入DRAM时,所需的DRAM页数为:1620/2=810。考虑到地址的映射的便利性,写入一个MB行(GOB),即45个行向MB需要45/2=23个DRAM页。写入36个MB行需要的DRAM页的个数为:23x36=828。一帧的子码流图像的色度数据写入DRAM时,写入一个MB行(GOB),即22个行向MB需要22/2=11个DRAM页。写入18个MB行需要的DRAM页的个数为:11x18=198。
如图7,图中D1-Y部分为主码流图像的亮度部分,占据810个DRAM页中0~128的地址空间。CIF-Y部分为子码流图像的亮度部分,占据396个DRAM页中192~256的地址空间。D1-UV部分为主码流图像的色度部分(包括U、V分量),占据810个DRAM页中128~191的地址空间。CIF-UV部分为子码流图像的色度部分(包括U、V分量),占据个DRAM页中192~236的地址空间。
按宏块方式存储时,存取外部DRAM的页地址和页内列地址的生成方式包括如下四种情况:
1.主码流图像(分辨率720x576)亮度的页、列地址:
页基地址row_base:0;
页偏移地址row_offset:m_y_gobx[5:1]+m_y_goby*23,m_y_gobx为6位二进制计数器,该计数器用于对主码流图像亮度数据行方向宏块个数进行计数,m_y_gobx[5:1]表示取m_y_gobx的高5位;m_y_goby为6位二进制计数器,该计数器用于对主码流图像亮度数据宏块列数进行计数;23为(45/2)取整的结果,由于一个DRAM页中存储两个宏块,23为存储一行的主码流亮度宏块所需的DRAM页的个数。
列基地址col_base:0;
列偏移地址col_offset:m_y_gobx[0]*64+m_y_mb_cnt,其中m_y_gobx[0]为m_y_gobx的最低位,其中m_y_mb_cnt为6位二进制计数器,用于对主码流图像亮度宏块内的像素数据个数以四个像素为单位进行计数(由于一个DRAM的存储空间32bit可存储4个像素);
2.主码流图像(分辨率720x576)色度的页、列地址
页基地址row_base:0;
页偏移地址row_offset:m_uv_gobx[5:1]+m_uv_goby*23;m_uv_gobx为6位二进制计数器,该计数器用于对主码流图像色度数据行方向宏块个数进行计数,m_uv_gobx[5:1]表示取m_uv_gobx的高5位;m_uv_goby为5位二进制计数器,该计数器用于对主码流图像色度数据宏块列数进行计数,计数范围:;23为(45/2)取整的结果,由于一个DRAM页中存储两个宏块,23为存储一行的主码流亮度宏块所需的DRAM页的个数。
列基地址col_base:128;
列偏移地址col_offset:m_uv_gobx[0]*32+m_uv_mb_cnt,其中m_uv_mb_cnt为5位二进制计数器,用于对色度宏块内的数据个数以四个像素为单位进行计数,计数范围:0~31。
3.子码流图像(分辨率352x288)亮度的页、列地址
页基地址row_base:0;
页偏移地址s_gobx+s_goby*22;s_gobx为5位二进制计数器,该计数器用于对子码流图像亮度数据行方向宏块个数进行计数;s_goby为5位二进制计数器,该计数器用于对子码流图像亮度数据宏块列数进行计数;22为存储一行的子码流亮度宏块所需的DRAM页的个数;
列基地址col_base:192;
列偏移地址col_offset:s_y_mb_cnt,其中s_y_mb_cnt为6位二进制计数器,用于对子码流图像亮度宏块内的数据个数以四个像素为单位进行计数;
4.子码流图像(分辨率352x288)色度的页、列地址
页基地址row_base:576;
页偏移地址row_offset:s_gobx[4:1]+s_goby*11;其中11为存储一行的子码流色度宏块所需的DRAM页的个数;
列基地址col_base:192;
列偏移地址col_offset:s_gobx[0]*32+s_uv_mb_cnt,其中s_gobx[0]为s_gobx的最低位,其中s_uv_mb_cnt为5位二进制计数器,用于对子码流图像色度宏块内的数据个数以四个像素为单位进行计数;
下面,通过实施实例二对视频编码中帧存储空间的配置方法进行具体说明。
本实施例的参数选择为:S=512,B=4,N=16,Wm=1280,Ws=352,Hm=720,Hs=288。YUV的格式为4:1:1。DRAM的存储空间如图8所示,包括4个Bank,每个Bank中包括4096页(page),每页的容量为512x32比特,即512x4字节,S=512,B=4。将整个DRAM均分成图中所示的16块区域。对于所述实施例的参数配置,所分隔的16块区域的任一块区域可用来按行或者按宏块格式存储一路的主码流图像和子码流图像。后续所述的帧存储空间的分布,是针对16块区域中的任一个区域所作的,适合于16块空间中的任一个区域。所述16块区域可配置为满足多路、多码流编码的应用。
该组参数满足条件Wm+Ws<=S*B,一个DRAM页中可存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的一行的亮度数据。
图9所示为按像素行格式操作的DRAM帧存储空间的分布。对于亮度分量,主码流图像分辨率为1280x720,一行的像素亮度数据个数为1280,即
320x32bit,一个DRAM页的512x32的空间里可存储的亮度行的个数:
512x32/320x32=1,考虑到与宏块存储的兼容性,取384x32个空间存储一行的亮度像素数据,剩余的128x32的存储空间用于存储子码流的亮度数据,存储全部的一帧主码流亮度图像所需总的DRAM页为720。子码流图像亮度图像分辨率为352x288,一行的像素亮度数据个数为352,即88x32bit,一个DRAM页剩余的128x32的空间里存储子码流亮度一行的数据,存储全部的一帧子码流亮度图像所需总的DRAM页为288。对于色度分量,主码流图像分辨率为1280x720时,一行色度数据个数为640个U分量像素,640个V分量像素,U、V分量分开存储,一整主码流图像中U、V分量各有360行。以色度U分量为例,一行色度数据640x8=160x32,一个DRAM页的512x32的空间可以写入三行的U分量数据,存储全部的一帧主码流色度U分量图像所需总的DRAM页为360/3=120。对于子码流图像的色度分量U,分辨率为176x144,两行的色度U数据(44x32x2)存到一个DRAM页中剩余的128x32的存储空间,存储全部的一帧子码流色度U分量图像所需的总的DRAM页为144/2=72。
图9中HD-Y部分为主码流图像的亮度部分,占据720个DRAM页中0~319的地址空间。QHD-Y部分为子码流图像的亮度部分,占据288个DRAM页中384~471的地址空间。HD-U部分为主码流图像的色度U分量部分,占据120个DRAM页中0~479的地址空间。QHD-U部分为子码流图像的色度U部分,占据72个DRAM页中384~471的地址空间。HD-V部分为主码流图像的色度V分量部分,占据120个DRAM页中0~479的地址空间。QHD-V部分为子码流图像的色度V分量部分,占据72个DRAM页中384~471的地址空间。
所述的U、V分量可分开存储,也可以交织方式的组合存储。图10为U、V分量以交织方式组合存储的示意图。HD-UV部分为主码流图像的色度部分(包括UV分量),占据240个DRAM页中0~479的地址空间。QHD-UV部分为子码流图像的色度部分(包括UV分量),占据144个DRAM页中384~471的地址空间。
按像素行格式存储时,存取外部DRAM的页地址和页内列地址的生成方式包括如下四种情况:
1.主码流图像(分辨率1280x720)的亮度地址产生:
页基址row_base:0
页偏移row_offset:m_y_row_cnt,其中,m_y_row_cnt为10位二进制计数器,该计数器用于对主码流图像中亮度像素数据的行数进行计数,计数范围:0~719;
列基址col_base:0
列偏移col_offset:m_y_col_cnt,其中m_y_col_cnt为9位二进制计数器,该计数器用于对主码流图像中亮度像素数据一行内的数据个数进行计数,计数范围:0~319
2.主码流图像(分辨率1280x720)的色度U地址产生:
页基址row_base:720
页偏移row_offset:m_u_row_cnt/3,其中m_u_row_cnt为9位二进制计数器,该计数器对主码流图像中色度U分量像素数据的行数进行计数,该9位行计数器的计数范围:0~359(包括色度U和V分量数据)。
列基址col_base:0
列偏移col_offset:(m_u_row_cnt%3)*90+m_u_col_cnt,其中:(m_u_row_cnt%3)表示取该m_u_row_cnt除以3的余数;m_u_col_cnt为8位二进制计数器,该计数器对主码流图像中色度U分量像素数据一行内的数据个数进行计数,计数范围0~159(一个DRAM页中写三个色度U行)
色度V的情况除行基址外,其他完全一致,色度V的行基址row_base:840。
3.子码流(图像分辨率352×288)的亮度数据映射:
页基址row_base:0
页偏移row_offset:s_y_row_cnt,其中s_y_row_cnt为9位二进制计数器,该计数器用于对子码流亮度像素数据中的像素行数进行计数,s_y_row_cnt的计数范围:0~287,
列基址col_base:384
列偏移col_offset:s_y_col_cnt,其中,s_y_col_cnt为7位二进制计数器,用于对子码流亮度像素数据中的一行内的像素数据个数以4个像素为单位进行计数,s_y_col_cnt计数范围0~87;
4.子码流(图像分辨率352×288)的色度U地址映射:(176x144)
页基址row_base:288
页偏移row_offset:s_u_row_cnt[8:1],其中,s_u_row_cnt为9位计数器,该计数器用于对子码流色度U分量像素数据中的像素行数进行计数,计数范围:0~287,包括U和V的行各144行;s_u_row_cnt[8:1]表示取s_u_row_cnt中的高8位。
列基址col_base:384
列偏移col_offset:s_u_col_cnt,其中s_u_col_cnt位6位二进制计数器,该计数器用于对色度U分量像素数据一行内的数据个数4个像素为单位进行计数,计数范围0~43。
色度V的情况除行基址外,其他完全一致。色度V的行基址row_base:360。
图11所示为按宏块格式操作的DRAM帧存储空间分布。
1.亮度数据:
主码流图像分辨率为1280x720,每行包括1280个像素点,分布在80个行方向MB(Macro Block,宏块)中,每个MB的大小为N*N,N=16,图像的高度为720,分布在45个列方向MB中,即一帧的主码流图像中包含:80x45=3600个MB。子码流图像分辨率352x288,子码流的亮度分量,每行的宽度为352个像素点,分布在22个行方向MB中,图像的高度为288,分布在18个列向MB中,即一帧的子码流图像中包含:22x18=396个MB。满足条件:S*B/N*N>=8,S*B/N*N<9,一个DRAM页中存储:所需存储空间分别为4*N*N的主码流图像的四个亮度宏块和4*N*N/2的四个色度宏块,以及所需存储空间为2*N*N的子码流图像的两个亮度宏块或者所需存储空间为4*N*N/2的子码流图像的四个色度宏块。一帧的主码流图像的亮度数据写入DRAM时,所需的DRAM页数为:3600/4=900。写入一个宏块组(GOB,Group of Block,宏块组),即80个行向MB需要80/4=20个DRAM页。写入45个宏块组需要的DRAM页的个数为:20x45=900。一帧的子码流图像的亮度数据写入DRAM时,写入一个宏块组,即22个行向MB需要22/2=11个DRAM页,写入18个宏块组需要的DRAM页的个数为:11x18=198。
2.色度数据:
主码流图像色度数据(分辨率为1280x720),行偏移地址为0,列偏移地址为256,每行色度的宽度为1280个像素点(包括640个U和640个V),分布在80个行向MB中,图像的高度为360,分布在45个列向MB中,即主码流图像一帧的图像中包含:80x45=3600个色度MB(每个色度MB的数据量为32个32bit)。子码流图像分辨率为352x288的情况,行偏移地址为198,列偏移地址为384,每行的色度宽度为352个像素(176个U和176个V),分布在22个行向MB中,图像的高度为144,分布在9(144/16)个列向MB中,即一帧的子码流图像中包含:22x18=396个色度MB(每个色度MB的数据量为32个32bit)。满足条件:S*B/N*N>=8,S*B/N*N<9,一帧的主码流图像的色度数据写入DRAM时,所需的DRAM页数为:3600/4=900。写入一个MB行(GOB),即80个行向MB需要80/4=20个DRAM页。写入45个MB行需要的DRAM页的个数为:20x45=900。一帧的子码流图像的色度数据写入DRAM时,写入一个MB行(GOB),即22个行向MB需要22/2=11个DRAM页。写入9个MB行需要的DRAM页的个数为:11x9=99。
如图11,图中HD-Y部分为主码流图像的亮度部分,占据900个DRAM页中0~255的地址空间。QHD-Y部分为子码流图像的亮度部分,占据198个DRAM页中384~511的地址空间。HD-UV部分为主码流图像的色度部分(包括U、V分量),占据900个DRAM页中256~383的地址空间。QHD-UV部分为子码流图像的色度部分(包括U、V分量),占据99个DRAM页中384~511的地址空间。
按宏块方式存储时,存取外部DRAM的页地址和页内列地址的生成方式包括如下四种情况:
1.主码流图像(分辨率1280x720)亮度的页、列地址:
页基地址row_base:0;
页偏移地址row_offset:m_y_gobx[6:2]+m_y_goby*20,m_y_gobx为7位二进制计数器,该计数器用于对主码流图像亮度数据行方向宏块个数进行计数,m_y_gobx[6:2]表示取m_y_gobx的高5位;m_y_goby为6位二进制计数器,该计数器用于对主码流图像亮度数据宏块列数进行计数;20为80/4的结果,由于一个DRAM页中存储四个亮度宏块,20为存储一行的主码流亮度宏块所需的DRAM页的个数。
列基地址col_base:0;
列偏移地址col_offset:m_y_gobx[1:0]*64+m_y_mb_cnt,其中m_y_gobx[1:0]表示取m_y_gobx的低2位,其中m_y_mb_cnt为6位二进制计数器,用于对主码流图像亮度宏块内的数据个数以四个像素为单位进行计数;
2.主码流图像(分辨率1280x720)色度的页、列地址
页基地址row_base:0;
页偏移地址row_offset:m_uv_gobx[6:2]+m_uv_goby*20;m_uv_gobx为7位二进制计数器,该计数器用于对主码流图像色度数据行方向宏块个数进行计数,m_uv_gobx[6:2]表示取m_uv_gobx的高5位;m_uv_goby为6位二进制计数器,该计数器用于对主码流图像色度数据宏块列数进行计数;20为80/4的结果,由于一个DRAM页中存储四个色度宏块,20为存储一行的主码流亮度宏块所需的DRAM页的个数。
列基地址col_base:256;
列偏移地址col_offset:m_uv_gobx[1:0]*32+m_uv_mb_cnt,其中m_uv_mb_cnt为5位二进制计数器,用于对色度宏块内的数据个数进行计数,计数范围:0~31。
3.子码流图像(分辨率352x288)亮度的页、列地址
页基地址row_base:0;
页偏移地址s_y_gobx[5:1]+s_y_goby*11;s_y_gobx为5位二进制计数器,该计数器用于对子码流图像亮度数据行方向宏块个数进行计数;s_goby为5位二进制计数器,该计数器用于对子码流图像亮度数据宏块列数进行计数;s_y_gobx[5:1]表示取s_y_gobx的高5位;11为存储一行的子码流亮度宏块所需的DRAM页的个数(22/2);
列基地址col_base:384;
列偏移地址col_offset:s_y_gobx[0]*64+s_y_mb_cnt,其中,s_y_gobx[0]表示取s_y_gobx的最低1位,其中s_y_mb_cnt为6位二进制计数器,用于对子码流图像亮度宏块内的数据个数进行计数;
4.子码流图像(分辨率352x288)色度的页、列地址
页基地址row_base:198;
页偏移地址row_offset:s_uv_gobx[4:2]+s_uv_goby*11;s_uv_gobx为5位二进制计数器,该计数器用于对子码流图像亮度数据行方向宏块个数计数,计数范围:;s_uv_goby为5位二进制计数器,该计数器用于对子码流图像亮度数据宏块列数进行计数,计数器的范围:0~17;其中11为存储一行的子码流色度宏块所需的DRAM页的个数;
列基地址col_base:384;
列偏移地址col_offset:s_uv_gobx[1:0]*32+s_uv_mb_cnt,其中s_uv_gobx[1:0]表示s_uv_gobx的最低2位,其中s_uv_mb_cnt为5位二进制计数器,用于对子码流图像色度宏块内的数据个数进行计数;计数范围:0~31。
应该理解到的是,上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明保护范围之内。

Claims (6)

1.一种视频编码中数据帧存储空间的配置方法,其特征在于包括如下步骤:
步骤一、根据视频或图像分辨率的大小,确定存储视频或图像所需的DRAM空间的大小;
步骤二、将数据帧的存取分成按行格式存取和按宏块格式存取:对于待编码的数据帧采用行格式存取,对于编码后的重构帧以及参考帧采用宏块格式存取;
步骤三、分别计算行格式存取的存储空间分配、宏块格式存取的存储空间分配、行格式存取的地址和宏块格式存取的地址,所述的存储空间为DRAM。
2.如权利要求1所述的视频编码中数据帧存储空间的配置方法,其特征在于,所述行格式存取的存储空间分配的方法为:
设主码流图像一个像素行中亮度数据的个数为Wm,主码流图像中像素行数为Hm,子码流图像一个像素行中亮度数据的个数为Ws,子码流图像中像素行数为Hs,每个像素位数为1个字节,一个DRAM页的大小为S个存储空间,其中每个存储空间中存储B个字节,那么,根据Wm,Ws和S*B的关系,有如下两种方式:
(1)当(Wm+Ws)<=S*B时,则一个DRAM页中存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的一行亮度数据;存储全部主码流图像的亮度数据所需的DRAM页中剩余的部分用于存储全部的子码流图像的亮度数据;
(2)当(Wm+Ws)>S*B且(Wm+Ws/2)<=S*B时,则一个DRAM页中存储主码流图像的一行亮度数据和该主码流图像对应的子码流图像的1/2行的亮度数据;存储全部主码流图像的区域所需的DRAM页中剩余的部分用于存储全部的子码流图像数据;
所述主码流图像是指多路视频编码中需要正常编码的某一路图像,所述子码流图像是指某一路图像中对应于“主码流图像”的降采样后的图像;
所述按像素宏块格式存取的DRAM空间分配的方法为:
设亮度宏块的大小为N*N个像素,N为正整数,每个像素的位数为1个字节,一个DRAM页的大小为S个存储空间,其中每个存储空间中存储B个字节,根据N*N和S*B的关系,有如下两种情形:
(1)当S*B/N*N>=4,且S*B/N*N<5时,则一个DRAM页中存储如下X1、Y1、Z1或者X1、Y1、U1三种数据,其中X1表示主码流图像的两个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y1表示主码流图像的两个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z1表示子码流图像的一个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U1表示子码流图像的两个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2;
(2)当S*B/N*N>=8,且S*B/N*N<9时,则一个DRAM页中存储如下X2、Y2、Z2或者X2、Y2、U2三种数据,其中X2表示主码流图像的四个亮度宏块,每个主码流图像的亮度存储空间为N*N;Y2表示主码流图像的四个色度宏块,每个主码流图像的色度宏块的存储空间为N*N/2;Z2表示子码流图像的两个亮度宏块,每个子码流图像的亮度宏块所需存储空间为N*N;U2表示子码流图像的四个色度宏块,每个子码流图像的色度宏块存储空间为N*N/2。
3.如权利要求2所述的视频编码中数据帧存储空间的配置方法,其特征在于,所述像素行格式存取的地址产生方法:像素行格式存取地址包括页地址和列地址,其中页地址指向DRAM空间中的页,列地址指向DRAM行中的某个存储单元;页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生;所述页基地址在系统设计时指定或通过寄存器配置,所述页偏移地址由计数器通过对像素行数计数产生,所述列基地址在系统设计时指定或通过寄存器配置,所述列偏移地址由计数器对行内的像素个数计数产生。
4.如权利要求2所述的视频编码中数据帧存储空间的配置方法,其特征在于,所述像素宏块格式存取地址的产生方法为:像素宏块格式存取地址包括页地址和列地址,页地址由页基地址加上页偏移地址的方式产生,列地址由列基地址加上列偏移地址的方式产生;所述页基地址在系统设计时指定或通过寄存器配置,所述页偏移地址根据宏块在图像中的垂直和水平方向的位置计算得到,所述列基地址在系统设计时指定或通过寄存器配置,所述列偏移地址根据宏块在图像中的水平方向的位置和宏块内数据计数器的值组合得到。
5.如权利要求2所述的视频编码中数据帧存储空间的配置方法,其特征在于,按S=256,B=4,N=16,Wm=720,Ws=352,Hm=576,Hs=288选择参数;
1)按行格式存储在DRAM中时:主码流图像的亮度部分,占据0到575个DRAM页中0~191的地址空间;子码流图像的亮度部分,占据0到575个DRAM页中192~236的地址空间;
主码流图像的色度部分包括U、V分量,子码流图像的色度部分包括U、V分量,所述主码流图像和子码流图像的色度部分按如下方法之一存储:
a)U、V分量分开存储:主码流图像的色度U分量部分,占据从576到719共144个DRAM页中0~191的地址空间;子码流图像的色度U分量部分,占据从576到719共144个DRAM页中192~236的地址空间;主码流图像的色度V分量部分,占据从720到863共144个DRAM页中0~191的地址空间;子码流图像的色度V分量部分,占据从720到863共144个DRAM页中192~236的地址空间;
b)U、V分量组合存储:主码流图像的色度部分占据从576到863共288个DRAM页中0~191的地址空间;子码流图像的色度部分占据从576到863共288个DRAM页中192~236的地址空间;
2)按宏块格式存储在DRAM中时:主码流图像的亮度部分,占据从0到809共810个DRAM页中0~128的地址空间;子码流图像的亮度部分,占据从0到395共396个DRAM页中192~256的地址空间;主码流图像的色度部分占据从0到809共810个DRAM页中128~191的地址空间,子码流图像的色度部分占据从576到773共198个DRAM页中192~236的地址空间。
6.如权利要求2所述的视频编码中数据帧存储空间的配置方法,其特征在于,按S=512,B=4,N=16,Wm=1280,Ws=352,Hm=720,Hs=288选择参数;
1)按行格式存储在DRAM中时:主码流图像的亮度部分,占据从0到719共720个DRAM页中0~319的地址空间;子码流图像的亮度部分,占据从0到287共288个DRAM页中384~471的地址空间;
主码流图像的色度部分包括U、V分量,子码流图像的色度部分包括U、V分量,所述主码流图像和子码流图像的色度部分按如下方法之一存储:
a)U、V分量分开存储:主码流图像的色度U分量部分,占据从720到839共120个DRAM页中0~479的地址空间;子码流图像的色度U部分,占据从288到359共72个DRAM页中384~471的地址空间;主码流图像的色度V分量部分,占据从840到959共120个DRAM页中0~479的地址空间;子码流图像的色度V分量部分,占据从360到431共72个DRAM页中384~471的地址空间;
b)U、V分量组合存储:主码流图像的色度部分占据从720到959共240个DRAM页中0~479的地址空间;子码流图像的色度部分占据从288到431共144个DRAM页中384~471的地址空间;
2)按宏块格式存储在DRAM中时:主码流图像的亮度部分,占据从0到899共900个DRAM页中0~255的地址空间;子码流图像的亮度部分,占据从0到197共198个DRAM页中384~511的地址空间;主码流图像的色度部分占据从0到899共900个DRAM页中256~383的地址空间;子码流图像的色度部分占据从198到297共99个DRAM页中384~511的地址空间。
CN 201110212313 2011-07-28 2011-07-28 视频编码中数据帧存储空间的配置方法 Active CN102256131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110212313 CN102256131B (zh) 2011-07-28 2011-07-28 视频编码中数据帧存储空间的配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110212313 CN102256131B (zh) 2011-07-28 2011-07-28 视频编码中数据帧存储空间的配置方法

Publications (2)

Publication Number Publication Date
CN102256131A CN102256131A (zh) 2011-11-23
CN102256131B true CN102256131B (zh) 2013-08-07

Family

ID=44983078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110212313 Active CN102256131B (zh) 2011-07-28 2011-07-28 视频编码中数据帧存储空间的配置方法

Country Status (1)

Country Link
CN (1) CN102256131B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104581175B (zh) * 2013-10-23 2018-01-12 晨星半导体股份有限公司 影像处理装置与方法
CN104853212B (zh) * 2015-05-05 2018-02-16 福州瑞芯微电子股份有限公司 一种视频解码器缓存高效率处理的装置及其方法
CN105047116A (zh) * 2015-08-21 2015-11-11 昆山龙腾光电有限公司 一种图片信息的处理方法及装置
CN108965987A (zh) * 2018-06-27 2018-12-07 广州视源电子科技股份有限公司 电视节目存储方法、电视机、移动终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1662068A (zh) * 2004-02-27 2005-08-31 精工爱普生株式会社 动态图像编码装置及动态图像处理装置
CN101179724A (zh) * 2007-12-11 2008-05-14 北京中星微电子有限公司 帧间压缩编码中的帧存储方法及装置
CN101252694A (zh) * 2008-03-31 2008-08-27 清华大学 基于块的视频解码的帧存储压缩和地址映射系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080137745A1 (en) * 2006-12-12 2008-06-12 Yu-Jen Lai Method and device for processing video data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1662068A (zh) * 2004-02-27 2005-08-31 精工爱普生株式会社 动态图像编码装置及动态图像处理装置
CN101179724A (zh) * 2007-12-11 2008-05-14 北京中星微电子有限公司 帧间压缩编码中的帧存储方法及装置
CN101252694A (zh) * 2008-03-31 2008-08-27 清华大学 基于块的视频解码的帧存储压缩和地址映射系统

Also Published As

Publication number Publication date
CN102256131A (zh) 2011-11-23

Similar Documents

Publication Publication Date Title
CN102256131B (zh) 视频编码中数据帧存储空间的配置方法
JP5290162B2 (ja) 複数の表示層の調合
CN100589173C (zh) 一种多画面拼接方法和装置
TWI544751B (zh) 重新製作資料的格式以降低視訊編碼器與緩衝器之間的頻寬
CN102547283B (zh) 动态视频数据压缩的设备和方法
CN102970538A (zh) 为运动补偿动态配置视频解码器高速缓存
CN101662608B (zh) 一种储存数据的方法
EP1998569A1 (en) Method for mapping image addresses in memory
CN101212674A (zh) 图像在存储器中的地址映射方法
CN101022553A (zh) 图像数据的存取和解码方法及解码装置
CN104956662A (zh) 在具有像素尺寸不能整除存储尺寸的存储单元中的图片像素排列的方法和装置
CN1645928A (zh) 用于压缩视频信号解码的图像存储方法
US20070127570A1 (en) Image processor and image processing method
US7499493B2 (en) Dual block motion vector storage in compressed form
DE102011100936A9 (de) Techniken zum Speichern und Abrufen von Pixeldaten
CN100444636C (zh) 提高视频解码器中sdram总线效率的方法
KR19980081641A (ko) 동화상 복호 방법 및 동화상 복호 장치
CN103220507B (zh) 一种视频编解码方法及系统
CN101651809B (zh) 双目立体显示视频处理的存储器存储及读写控制方法
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
CN101304528A (zh) 视频处理器视频数据与存储器存储空间的映射方法
CN100428799C (zh) 视频解码图像存储空间管理方法
CN103034455B (zh) 基于预先解码分析的数据信息缓存管理方法及系统
JP2965530B2 (ja) ビデオデータシャフリング方法及び装置
JPH08186826A (ja) 画像復号処理方法およびそれに用いる記憶装置並びに画像復号装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: 310012 Hangzhou, Zhejiang Province, Gushan Road, No. 4, No.

Applicant after: Hangzhou Shilan Microelectronics Co., Ltd.

Address before: 310012 Hangzhou, Zhejiang Province, Gushan Road, No. 4, No.

Applicant before: Hangzhou Silan Microelectronics Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: HANGZHOU SILAN MICROELECTRONICS CO.,LTD. TO: HANGZHOU SHILAN MICROELECTRONICS CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant