CN101299808B - 一种实时图像数据传输方法及装置 - Google Patents
一种实时图像数据传输方法及装置 Download PDFInfo
- Publication number
- CN101299808B CN101299808B CN 200710103698 CN200710103698A CN101299808B CN 101299808 B CN101299808 B CN 101299808B CN 200710103698 CN200710103698 CN 200710103698 CN 200710103698 A CN200710103698 A CN 200710103698A CN 101299808 B CN101299808 B CN 101299808B
- Authority
- CN
- China
- Prior art keywords
- usb
- frame
- image block
- buffering area
- size
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种用于USB传输图像系统中的数据传输方法,该方法是在传输过程中对USB缓冲区的剩余容量大小进行计算,若此时计算出的容量过小可能会出现数据丢失的情况时,对图像帧内的码流进行调整,即减小码流,从而避免了丢帧现象的出现。本发明的方法能够使的图像质量变好,压缩信噪比高,视觉主观效果好,USB带宽利用率更高。
Description
技术领域
本发明涉及一种图像数据传输方法及装置,尤其涉及一种在USB接口图像数据实时传输过程中的防止数据缓冲溢出的实时数据传输方法及装置。
背景技术
现在,USB(Universal Serial Bus)接口已经被广泛地应用到外围设备中,如鼠标、键盘、存储设备等,通过USB接口设备进行与主机之间的数据传输通信,目前还应用到了摄像头的视频图像数据传输中。
图1所示为传统的具有USB接口的摄像头的系统结构图。其中,摄像头中的传感器将视频图像进行实时捕捉,并通过传感器接口传送给图像处理器,由于捕捉到的图像数据量通常很大,因此在使用USB接口进行图像数据传输时需要对图像数据进行压缩,图1所示为采用MJPEG(Motion Joint PhotograghCoding Experts Group)压缩格式,压缩后的图像数据再通过USB接口设备和主机(host)通信。所述图像数据在传输过程中先在USB接口设备中的USB缓冲区中进行排队,然后依次传输给主机。
已经知道,USB接口的通信速率一般可以达到全速率(Full Speed)模式12Mb/s以及高速率(High Speed)模式480Mb/s,这在一些数据传输的应用中完全足够,但是在例如图1所示的USB摄像头的实时视频图像数据传输时,实时压缩的图像数据码率有时会变得很大,这时将会引起USB缓冲区溢出,从而导致发生图像数据丢失,反映在host上即有错误的图像数据、丢帧等现象,使得图像和视频质量明显下降。
发明内容
为了解决上述问题,本发明公开了一种用于图像传输系统中的数据传输方法,该系统包括一个用于实时接收图像数据的设备,该设备将其接收到的图像数据分为多个图像块通过USB接口实时传送给主机,该设备包括一个容量大小为MAXP的缓冲区,该方法包括如下步骤:
步骤1,初始化所述设备;
步骤2,比较所述缓冲区当前的剩余容量Buf_Size与一个预设值ST_ADJ的大小,如果Buf_Size大于或等于ST_ADJ,则进入步骤3;如果Buf_Size<ST_ADJ,则进入步骤4;
步骤3,以压缩格式1的方法压缩当前图像块,并将其置入缓冲区内,记录缓冲器中当前图像块的个数Block_Cnt增1,返回步骤2;
步骤4,判断缓冲区的剩余容量是否可以装满剩余的图像块压缩数据,若是,则转入步骤3;若否,则以压缩格式2的方法压缩当前图像块,并将其置入缓冲区内,记录缓冲器中当前图像块的个数Block_Cnt增1;
步骤5,重复步骤1-4,直到一个USB帧传输完毕,返回步骤1。
其中,
所述步骤3中的压缩格式1的方法为MJPEG压缩算法。
其中,
所述步骤4中的压缩格式2方法为在MJPEG算法中舍去高频DCT系数。
其中,
所述ST_ADJ为MAXP/5。
其中
所述判断步骤包括,计算Block_Cnt+Buf_Size×一个常数的值,若该值大于一个预设值YYY,则认为剩余缓冲区的容量可以装满剩余的图像块压缩数据,
其中,
所述一个常数为NNN/MAXP,所述YYY为NNN×1.1,其中NNN为一个USB帧平均传输的图像块个数。
其中,在一个图像帧传输完毕后,还包括步骤:
步骤6,判断当前图像帧是否有一个USB帧采用了压缩格式2的方法压缩,若是,记录次数为零,并且增大下一个图像帧的量化步长;若否,则记录次数增1;
执行步骤1-6,直到记录次数达到一个预设值N时,则减少下一帧的量化步长,返回步骤0。
其中,
所述预设值N为5-30。
本发明进一步公开了一种图像数据传输装置,其通过USB接口与主机进行数据传输,其特征在于,其包括一缓冲器、一图像压缩控制器和一图像压缩器:
所述图像压缩控制器根据缓冲器剩余容量的大小进行计算,并根据计算的结果控制图像压缩器的压缩格式算法。
其中,
所述装置为摄像头。
本发明的方法和装置可将图像质量变好,压缩信噪比高,视觉主观效果好,USB带宽利用率更高。
通过以下结合附图对本发明优选实施方式的描述,本发明的其它特点、目的和效果将变得更加清楚和易于理解。
附图说明
图1为现有技术的USB摄像头的系统框图;
图2为本发明的USB摄像头的系统框图;
图3为按照本发明的方法的帧内码率控制图;
图4为按照本发明的方法的帧间码率控制图。
在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。
具体实施方式
下面参照附图详细说明本发明的图像数据传输方法及装置。
图2所示为本发明的图像数据传输装置结构图,其与图1所示的结构图中不同之处在于增加了一个图像压缩控制器,其对数据缓冲器剩余容量的大小进行判断,如果计算结果表明数据缓冲器剩余容量还很多,则其控制图像压缩器按照原始的压缩比格式对图像块进行压缩,然后将压缩后的图像块传送给数据缓冲器;当计算结果表明数据缓冲器剩余容量不足而可能会引起缓冲器溢出时,则其控制图像压缩器按照高压缩比格式对图像块进行压缩,从而控制码率,避免了因缓冲器溢出而引起的图像丢失。
本发明进一步公开了相应于上述装置的控制方法。
本实施方式以USB Full Speed模式Isochronous传输为例来说明本发明的方法。根据USB协议,每个USB帧内最多能传输的数据,即Full Speedisochronous传输的最大数据包长度为1023字节(Bytes),我们这里自定义为MAXP bytes)。因此,根据最小硬件设计原则,设置USB图像数据缓冲区的大小为1023字节,下面设置为MAXP Bytes(还可以更大,但硬件成本将随之增加);
假设视频的传输速率为VGA(Video Graphics Array)图像(640×480)30帧/秒,则传输每帧图像的时间约为1/30=33ms,即需要USB接口传输33个USB帧,同时,一帧图像又可以拆分成多个图像子单元(假设为mcu个),对每个子单元单独进行压缩编码,本实施例以MJPEG压缩方式4∶2∶2为例,则每个图像子单元也就是8x16的图像块,VGA图像即包括8x16的图像块的块数为2400个),平均分配到每1个USB帧,即1个USB帧大约传输2400/33约等于72个图像块,我们设为NNN个图像块;
为了在尽量不增大USB缓冲区的同时解决USB缓冲溢出的问题,同时图像视频质量下降不明显,本发明的数据传输方法是在传输过程中对USB缓冲区的剩余容量大小进行计算,若此时计算出的容量过小可能会出现数据丢失的情况时,则对图像帧内的码流进行调整,即减小码流,从而避免了丢帧现象的出现。具体步骤如下所述。
设当前的缓冲区中的图像块个数为Block_Cnt,当前的缓冲区剩余大小为Buf_Size,
步骤0,初始化设置,每个USB帧开头赋初值,Block_Cnt清零,USB缓冲区清零,设置其大小Buf_Size=MAXP;
步骤1,计算Buf_Size值,比较Buf_Size与一个预设值ST_ADJ(例如我们取MAXP/5)的大小,若Buf_Size>=ST_ADJ(说明此时USB缓冲区的容量还很多,因此不需要进行码流调整),则进入步骤2;若Buf_Size<ST_ADJ,则转入步骤3;
步骤2,压缩一个图像块,并将压缩数据置入USB数据缓冲区,返回步骤1;
步骤3,计算Block_Cnt+Buf_Size*COEF(COEF为一个比例系数优选地,COEF可取为NNN/MAXP)的值XXX,若XXX>一个值YYY(优选地,可以取为NN×1.1),说明预测剩余的缓冲区还可以装满剩余的图像块压缩数据,因此不需要进行码率调整,进入步骤2;若否,则进入步骤4;
步骤4,进行码率调整,即以压缩格式2的方法进行图像块压缩,记录调整次数n增1,返回步骤1。
上述码率调整,对于本实施例来说,即对每个8*16的图像子单元所含有Y/Y/U/V四个8*8的图像数据块,分别进行JPEG压缩(具体过程是,8*8的原始数据由离散余弦变换(DCT)变换转化为8*8总共64个DCT系数,经过zigzag扫描将高频系数放在低频系数后面,再经过量化以及霍夫曼(huffman)编码等过程后,产生压缩图像数据。将zigzag扫描后0~63个dct的后面部分(高频)系数设为0从而舍去,舍去的起始点可以由YYY-XXX的差值决定,优选地,可以为6-54;
重复上述步骤,直到一个USB帧传送完毕,再从步骤0开始处理下一个USB帧,直到整个图像传送完毕。
图3示出了按照本发明方法的图像帧内码率控制图,其中和①、③为USB有溢出的情况,②为判断USB缓冲区无溢出的情况。其中的长虚线部分为按照原始的MJPEG算法压缩的图像块的码率,其由于图像块码率过大而使得USB缓冲区会有溢出的情况发生;实线部分为按照高比例压缩算法的图像块的码率,其有效地避免了USB缓冲区溢出的可能性。由图中可以看出,本发明的方法大大降低了USB缓冲区溢出的可能性。
以上所述为本发明的具体实施方式,其对图像帧内的码流进行了控制,这种方法能够有效地解决防止缓冲区因溢出而导致的丢帧现象,但图像的质量因舍去高频DCT系数而可能使得图像质量变差(部分区域马赛克),因此本发明在实现前面的帧内的码流调整的基础上结合帧间码流控制可以更好地提高图像视频的质量。
因此,在上述一个图像帧处理完后插入如下步骤:
步骤5,判断当前图像帧是否至少有一个USB帧按上面步骤4的方式舍去了大量的DCT高频系数(计数器1不为0),若有,则将下一帧的量化步长增大一点(如20%)从而降低码率),记录次数nolose_cnt=0,若没有,则记录次数nolose_cnt=nolose_cnt+1;
执行步骤0-5,直到nolose_cnt=一个值时,则认为当前视频码率过低,USB带宽利用率低,则将下一帧的量化步长减少一些(如20%),返回步骤0。这里,在视频内容变化速度很快的场合,nolose_cnt可以较大譬如30,减少频繁的马赛克现象,在视频内容变化较偶然的场合,nolose_cnt可以较小譬如5,可以使得视频快速回复到高清晰。
图4所示为按照如上所述方法的图像帧间码率控制图。其中由于前一个图像帧已经进行了码率的调整,因此在后一图像帧进行量化步长增大控制,实线101、201、301均为调整量化步长后的码率,101为调整步长后USB缓冲不溢出的情况,201为调整步长后判断USB缓冲仍将溢出而再次进行高比例压缩算法调整码率值,301为记录7帧没有经过量化步长增大后减小步长的码率值。
如上所述则可将图像质量变好,压缩信噪比高,视觉主观效果好,USB带宽利用率更高。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,例如,在USB设备中,基于离散余弦变换(DCT)与基于离散小波变换(DWT)的视频压缩与音频压缩,都可以通过舍弃高频DCT系数或DWT系数来降低码率,降低USB缓冲溢出的可能,保证高性能音视频的稳定传输。这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种用于图像传输系统中的数据传输方法,该系统包括一个用于实时接收图像数据的设备,该设备将其接收到的图像数据分为多个图像块通过USB接口实时传送给主机,该设备包括一个容量大小为MAXP的缓冲区,该方法包括如下步骤:
步骤1,初始化所述设备;
步骤2,比较所述缓冲区当前的剩余容量Buf_Size与一个预设值ST_ADJ的大小,如果Buf_Size大于或等于ST_ADJ,则进入步骤3;如果Buf_Size<ST_ADJ,则进入步骤4;
步骤3,以压缩格式1的方法压缩当前图像块,并将其置入缓冲区内,记录缓冲器中当前图像块的个数Block_Cnt增1,返回步骤2;
步骤4,判断缓冲区的剩余容量是否可以装满剩余的图像块压缩数据,若是,则转入步骤3;若否,则以压缩格式2的方法压缩当前图像块,并将其置入缓冲区内,记录缓冲器中当前图像块的个数Block_Cnt增1,并进入步骤5;
步骤5,以压缩格式2的方法压缩图像块,并将其置入缓冲区内,记录缓冲器中当前图像块的个数Block_Cnt增1,直到当前USB帧传输完毕,返回步骤1,直到一个图像帧传输完毕,进入步骤6;
步骤6,一个图像帧传输完毕后,判断当前图像帧是否有一个USB帧采用了压缩格式2的方法压缩,若是,记录次数为零,并且增大下一个图像帧的量化步长;若否,则记录次数增1;
执行步骤1-6,直到记录次数达到一个预设值N时,则减少下一帧的量化步长,返回步骤1。
2.根据权利要求1所述的方法,其特征在于:
所述步骤3中的压缩格式1的方法为MJPEG压缩算法。
3.根据权利要求2所述的方法,其特征在于:
所述步骤4中的压缩格式2方法为在MJPEG算法中舍去高频DCT系数。
4.根据权利要求1所述的方法,其特征在于:
所述ST_ADJ为MAXP/5。
5.根据权利要求1所述的方法,其特征在于:
所述判断步骤包括,计算Block_Cnt+Buf_Size×一个常数的值,若该值大于一个预设值YYY,则认为剩余缓冲区的容量可以装满剩余的图像块压缩数据。
6.根据权利要求5所述的方法,其特征在于:
所述一个常数为NNN/MAXP,所述YYY为NNN×1.1,其中NNN为一个USB帧平均传输的图像块个数。
7.根据权利要求1所述的方法,其特征在于:
所述预设值N为5-30。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710103698 CN101299808B (zh) | 2007-04-30 | 2007-04-30 | 一种实时图像数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710103698 CN101299808B (zh) | 2007-04-30 | 2007-04-30 | 一种实时图像数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101299808A CN101299808A (zh) | 2008-11-05 |
CN101299808B true CN101299808B (zh) | 2011-11-16 |
Family
ID=40079477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710103698 Expired - Fee Related CN101299808B (zh) | 2007-04-30 | 2007-04-30 | 一种实时图像数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101299808B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101720033B (zh) * | 2009-11-24 | 2014-08-20 | 北京中星微电子有限公司 | 一种视频传输设备及其usb传输的装置及方法 |
CN103997597A (zh) * | 2013-02-20 | 2014-08-20 | 天彩电子(深圳)有限公司 | 一种相机影音流实时传输方法及装置 |
CN104243884B (zh) * | 2013-06-13 | 2018-05-01 | 建研防火设计性能化评估中心有限公司 | 视频录制方法和视频录制装置 |
JP6467503B2 (ja) * | 2014-07-14 | 2019-02-13 | エスケー テックス カンパニー、リミテッド | クラウドストリーミングサービスシステム、メモリボトルネックを防止するためのデータ圧縮方法及びそのための装置 |
CN105427403A (zh) * | 2015-11-03 | 2016-03-23 | 深圳市凯立德科技股份有限公司 | 行车记录数据存储方法及行车记录仪 |
CN107454282A (zh) * | 2017-08-23 | 2017-12-08 | 惠州Tcl移动通信有限公司 | 移动终端及移动终端之间照片共享处理方法、及存储介质 |
CN109640111B (zh) * | 2019-01-29 | 2021-02-02 | 视联动力信息技术股份有限公司 | 一种图片传输方法、装置和可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1202059A (zh) * | 1997-04-03 | 1998-12-16 | 索尼公司 | 编码装置和方法、译码装置和方法以及编辑方法 |
US6065094A (en) * | 1996-08-02 | 2000-05-16 | Sharp Kabushiki Kaisha | Inexpensive compressed data storage apparatus with improved resistance to vibrations |
CN1826812A (zh) * | 2003-03-31 | 2006-08-30 | 夏普株式会社 | 视频编码器和编码视频的方法 |
-
2007
- 2007-04-30 CN CN 200710103698 patent/CN101299808B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065094A (en) * | 1996-08-02 | 2000-05-16 | Sharp Kabushiki Kaisha | Inexpensive compressed data storage apparatus with improved resistance to vibrations |
CN1202059A (zh) * | 1997-04-03 | 1998-12-16 | 索尼公司 | 编码装置和方法、译码装置和方法以及编辑方法 |
CN1826812A (zh) * | 2003-03-31 | 2006-08-30 | 夏普株式会社 | 视频编码器和编码视频的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101299808A (zh) | 2008-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101299808B (zh) | 一种实时图像数据传输方法及装置 | |
JP3756346B2 (ja) | ビデオ・フレームの多重ストリームを処理する方法及びシステム | |
KR100610520B1 (ko) | 비디오 데이터 부호화 장치, 비디오 데이터 부호화 방법, 비디오데이터 전송 장치 및 비디오 데이터 기록 매체 | |
CN1268130C (zh) | 固定带宽网络中多个压缩视频流的自适应带宽轨迹匹配 | |
US8422565B2 (en) | Information processing device and method, and information processing system | |
US20020012395A1 (en) | Rate control apparatus and method for real-time video communication | |
WO2002032207A2 (en) | Rate control for bitstream re-encoding | |
WO1999001987A1 (en) | Device and method for controlling image encoding, encoding system, transmission system and broadcast system | |
CN1263307C (zh) | 根据网络带宽自适应地控制数据传输速率的装置 | |
EP1217842A3 (en) | Frame bit-size allocation for seamlessly spliced, variable-rate compressed digital video signals | |
JP3907875B2 (ja) | 符号化レート制御装置及び情報符号化装置 | |
US20020101921A1 (en) | Controlling a video-buffer-verifer buffer using an MPEG-like encoder | |
TW201034465A (en) | Image compression method and related apparatus thereof | |
CN1214629C (zh) | 传送静止图像的终端和方法 | |
US6412013B1 (en) | System for controlling data output to a network | |
CN101217615B (zh) | 一种压缩图像比特率控制的方法及装置 | |
US6570921B1 (en) | Data compression assembly having several data-compression channels | |
JP3839911B2 (ja) | 画像処理装置および画像処理方法 | |
CN101090497A (zh) | 一种数据压缩方法和装置 | |
CN101360229B (zh) | 一种图像码流的平滑方法和装置 | |
KR100286108B1 (ko) | 실시간 처리를 위한 비디오 신호에 대한 비트수 추정방법과왜곡추정방법 및 이것들을 이용한 부호화방법과 그 장치 | |
JP2003092760A (ja) | 画像圧縮符号化方法、画像配信方法、およびそれらのプログラム | |
JP2004056677A (ja) | 画像情報符号化装置及び画像情報符号化方法 | |
JPH08186821A (ja) | 動画像符号化装置及び動画像伝送装置 | |
JP4273386B2 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20120430 |