CN116489361B - 一种基于fpga的jpeg编码码流控制方法和装置 - Google Patents
一种基于fpga的jpeg编码码流控制方法和装置 Download PDFInfo
- Publication number
- CN116489361B CN116489361B CN202310744995.1A CN202310744995A CN116489361B CN 116489361 B CN116489361 B CN 116489361B CN 202310744995 A CN202310744995 A CN 202310744995A CN 116489361 B CN116489361 B CN 116489361B
- Authority
- CN
- China
- Prior art keywords
- output
- mode
- coding
- image
- bandwidth
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000006835 compression Effects 0.000 claims abstract description 129
- 238000007906 compression Methods 0.000 claims abstract description 129
- 238000005457 optimization Methods 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000010586 diagram Methods 0.000 claims abstract description 24
- 238000013139 quantization Methods 0.000 claims description 33
- 238000000605 extraction Methods 0.000 claims description 25
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 6
- 239000004973 liquid crystal related substance Substances 0.000 description 16
- 230000008569 process Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 241000209507 Camellia Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000018597 common camellia Nutrition 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于FPGA的JPEG编码码流控制方法和装置,该方法基于FPGA实现JPEG图像编码,同时根据编码码流大小和输出带宽大小,通过调节编码参数实时调节JPEG编码器输出码流;首先确定输入图像分辨率、帧率、输入模式、量化位宽、压缩质量系数、编码输出模式、输出带宽限制、优化策略和优化模式;然后在配置参数发生改变时,根据输入参数对图像进行优化;再对输入图像进行JPEG编码压缩;最后根据输出带宽限制和编码压缩后图像的编码大小调节优化系数。本发明采用流水线设计,处理延迟低,适配灰度图和彩色图,根据输出带宽实时调节编码器,在保证图像大小满足带宽的前提下,保证编码质量,提高了输出带宽的利用率。
Description
技术领域
本发明涉及数字图像处理技术领域,尤其涉及一种基于FPGA的JPEG编码码流控制方法和装置。
背景技术
随着数字技术的发展,数字图像是人们获取信息的重要途径之一,但若不对数字图像进行压缩,对后续的传输和存储环节都将产生巨大的压力。例如一副量化位宽8bit的1920×1080的RGB图像,其大小约为5.9M。数字图像中固有的编码冗余、像素间冗余和心理视觉冗余为图像压缩提供了可能性。
JPEG(Joint Photographic Experts Group,联合图像专家小组),团队创立于1986年,其于1992年发布的 JPEG 标准在1994年获得了 ISO 10918-1 的认定,成为了图片压缩标准。截至目前,JPEG仍然是应用最广的图片压缩标准之一。
FPGA(Field Programmable Gate Arrays,可编程阵列逻辑)由于其并行处理能力及其在高速计算方面的优势使得它在图像压缩中的应用越来越广泛。目前某些应用场景,例如卫星通、Cameralink-base协议等,限制了传输带宽,JPEG压缩主要通过调节量化系数调节编码输出数据流大小。前端的相机无论是位置固定还是安装在机动设备上,前后两张的图片内容在大多数情况下均不会有太大变化,因此可以利用上一张的编码结果对量化系数做反馈调节。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于FPGA的JPEG编码码流控制方法和装置。
本发明的目的是通过以下技术方案来实现的:本发明实施例第一方面提供了一种基于FPGA的JPEG编码码流控制方法,包括以下步骤:
(1)确定输入图像的配置参数,所述配置参数包括分辨率、帧率、输入模式、量化位宽、压缩质量系数、编码输出模式、输出带宽限制、优化策略和优化模式;
(2)判断输入图像的配置参数是否发生改变,若发生改变,则根据输入图像的配置参数对图像进行优化,对优化后的图像执行步骤(3);否则,直接执行步骤(3);
(3)根据输入图像的输入模式和编码输出模式对输入图像进行JPEG编码压缩,以获取编码压缩后的图像;
(4)根据输出带宽限制和编码压缩后的图像的编码大小调节优化系数,以完成对JPEG编码码流的控制。
进一步地,所述分辨率大于16×16像素;所述帧率为一秒钟发送的图像数量;所述输入模式包括灰度图、RGB、YUV444、YUV422和YUV420;所述压缩质量系数的范围为1~100;所述编码输出模式包括灰度图、YUV444、YUV422和YUV420;所述输出带宽限制为编码输出带宽阈值;所述优化策略包括接受优化与否、最大可接受缩放系数、最低可接受质量系数、最大可接受抽帧间隔和接受灰度图与否;所述优化模式包括输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化、输出质量可优化。
进一步地,所述步骤(2)包括以下子步骤:
(2.1)在每幅图像输入开始时,判断输入图像的配置参数是否发生改变,若发生改变,则执行步骤(2.2);否则,直接执行步骤(3);
(2.2)根据优化策略判断输入图像的配置参数是否支持优化,若支持优化,则执行步骤(2.3);否则,直接执行步骤(3);
(2.3)为输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化和输出质量可优化四种优化模式设置优先级,按照优先级从大到小的顺序对图像进行优化,对优化后的图像执行步骤(3)。
进一步地,将所述编码输出模式可优化的优先级设置为4,将所述输出质量可优化的优先级设置为3,将所述输出图像分辨率可优化的优先级设置为2,将所述输出帧率可优化的优先级设置为1;按照优先级从大到小对输出图像进行优化,包括以下子步骤:
(2.3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则执行步骤(2.3.7);否则,执行步骤(2.3.2);
(2.3.2)判断输入图像的输入模式是否为RGB或YUV444,若输入模式为RGB或YUV444, 则获取YUV444所需带宽,并判断当前所需输出带宽是否大于等于YUV444所需带宽,若当前所需输出带宽大于等于YUV444所需带宽,则将编码输出模式配置为YUV444,并进入步骤(3);否则,执行步骤(2.3.4);若输入模式不为RGB或YUV444,则执行步骤(2.3.3);
(2.3.3)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则执行步骤(2.3.4);否则,执行步骤(2.3.5);
(2.3.4)获取YUV422所需带宽,并判断当前所需输出带宽是否大于等于YUV422所需带宽,若当前所需输出带宽大于等于YUV422所需带宽,则将编码输出模式配置为YUV422,并进入步骤(3);否则,执行步骤(2.3.5);
(2.3.5)获取YUV420所需带宽,并判断当前所需输出带宽是否大于等于YUV420所需带宽,若当前所需输出带宽大于等于YUV420所需带宽,则将编码输出模式配置为YUV420,并进入步骤(3);否则,执行步骤(2.3.6);
(2.3.6)根据优化策略判断是否接受灰度图,若接受灰度图,执行步骤(2.3.7);否则,执行步骤(2.3.8);
(2.3.7)获取灰度图所需带宽,并判断当前所需输出带宽是否大于等于灰度图所需带宽,若当前所需输出带宽大于等于灰度图所需带宽,则将编码输出模式配置为灰度图,并进入步骤(3);否则,执行步骤(2.3.8);
(2.3.8)根据输入图像的帧率、输入模式、量化位宽、分辨率和输出带宽限制计算可适配输出带宽的第一压缩比,根据可适配输出带宽的第一压缩比、当前的图像编码输出模式以及该编码输出模式下的压缩比质量系数查找表获取可适配输出带宽的第一压缩质量系数,判断可适配输出带宽的第一压缩质量系数是否大于等于输入图像的压缩质量系数,若第一压缩质量系数大于等于压缩质量系数,则将压缩质量系数更新配置为第一压缩质量系数,并进入步骤(3);否则,执行步骤(2.3.9);
(2.3.9)根据编码输出模式和当前压缩质量系数获取当前第二压缩比,根据当前输入图像的帧率、输入模式、量化位宽和第二压缩比计算当前编码输出模式和压缩质量系数条件下的最优分辨率,根据输入图像的分辨率和最优分辨率计算缩放系数,判断缩放系数是否小于等于最大可接受缩放系数,若缩放系数小于等于最大可接受缩放系数,则根据该缩放系数更新配置图像的分辨率,并对同时对输入图像进行缩放处理后进入步骤(3);否则,执行步骤(2.3.10);
(2.3.10)根据当前配置的图像的最优分辨率、输入模式、输出带宽限制、量化位宽和当前第二压缩比计算当前编码输出模式和压缩质量系数条件下的最大帧率,根据最大帧率和输入图像的帧率计算抽帧间隔,判断抽帧间隔是否小于等于最大可接受抽帧间隔,若抽帧间隔小于等于最大可接受抽帧间隔,则按照抽帧间隔对输入图像进行抽帧处理后进入步骤(3);否则,向上位机发送错误状态代码,等待上位机重新配置新的配置参数。
进一步地,所述YUV444所需带宽、所述YUV422所需带宽、所述YUV420所需带宽或所述灰度图所需带宽的获取方法具体为:根据输入图像的输入模式和质量系数查找压缩比表,以获取压缩比;根据输入图像的分辨率、帧率、量化位宽和压缩比查找带宽表,以获取YUV444所需带宽、YUV422所需带宽、YUV420所需带宽或灰度图所需带宽。
进一步地,所述步骤(3)包括以下子步骤:
(3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则直接执行步骤(3.6);否则,执行步骤(3.2);
(3.2)判断输入图像的输入模式是否为RGB,若输入模式为RGB,则对输入图像进行色域转换,将RGB转换为YUV,对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为RGB,则执行步骤(3.3);
(3.3)判断输入图像的输入模式是否为YUV444,若输入模式为YUV444,则对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为YUV444,则执行步骤(3.4);
(3.4)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则对编码输出模式进行判断:若编码输出模式为YUV422,则直接执行步骤(3.6);若编码输出模式为YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444,则向上位机发送错误状态代码;若输入模式不为YUV422,则执行步骤(3.5);
(3.5)对编码输出模式进行判断:若编码输出模式为YUV420,则直接执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444或YUV422,则向上位机发送错误状态代码;
(3.6)将输入图像的每个通道划分为8×8的编码块,对每个通道的编码块进行标准JPEG编码压缩,直至整幅输入图像编码完成,以获取编码压缩后的图像。
进一步地,所述步骤(3.6)中标准JPEG编码压缩具体包括:首先对每个通道的编码块进行8×8的二维离散余弦变换,以获取转换结果,然后将转换结果结合量化表进行量化处理和Zigzag排序,最后对量化处理和Zigzag排序后的编码块进行编码输出,若下一个8×8的编码块的数据到来时,当前编码块仍未编译完成,则直接丢弃未编码高频信息,输出块编码结束标志,对下一个8×8编码块进行编码输出,依次进行直到整幅输入图像编码完成,获取编码压缩后的图像。
进一步地,所述步骤(4)包括以下子步骤:
(4.1)对编码模块的输出进行累计计数,根据累计计数计算编码压缩后的图像的数据流的大小;
(4.2)根据数据流的大小和当前帧率计算第一输出带宽;
(4.3)根据第一输出带宽和输出带宽限制以及当前优化方式调节并更新与当前优化方式对应的优化系数,以完成对JPEG编码码流的控制。
本发明实施例第二方面提供了一种基于FPGA的JPEG编码码流控制装置,包括一个或多个处理器,用于实现上述的基于FPGA的JPEG编码码流控制方法。
本发明实施例第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的基于FPGA的JPEG编码码流控制方法。
本发明的有益效果是,本发明基于FPGA实现JPEG图像编码,同时根据编码码流大小和输出带宽大小,通过调节编码参数实时调节JPEG编码器输出码流;本发明采用流水线设计,处理延迟低,适配灰度图和彩色图,根据输出带宽实时调节编码器,在保证图像大小满足带宽的前提下,保证编码质量,提高了输出带宽的利用率。
附图说明
图1是本发明实施例中的基于FPGA的JPEG编码码流控制方法的流程图;
图2是本发明实施例中配置参数发生改变时默认优先级的情况下输出模式的优化流程图;
图3是本发明实施例中对输入图像进行JPEG编码压缩的流程图;
图4为本发明实施例中输入模式为RGB编码输出模式为YUV444时的YUV分量示意图;
图5为本发明实施例中输入模式为RGB编码输出模式为YUV422时降采样处理的YUV分量示意图;
图6为本发明实施例中输入模式为RGB编码输出模式为YUV420时降采样处理的YUV分量示意图;
图7为本发明实施例中的Zigzag排序图;
图8是本发明实施例中的待压缩原始图像;
图9是本发明实施例中压缩质量系数Q=50时的正常压缩结果;
图10是本发明实施例中压缩质量系数Q=50时丢弃每个8×8块的高频10个数据的压缩结果;
图11是本发明的基于FPGA的JPEG编码码流控制装置的一种结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本发明进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
参见图1,本发明的基于FPGA的JPEG编码码流控制方法,具体包括以下步骤:
(1)确定输入图像的配置参数,其中,配置参数包括分辨率、帧率、输入模式、量化位宽、压缩质量系数、编码输出模式、输出带宽限制、优化策略和优化模式。
本实施例中,要求输入图像的分辨率大于16×16像素;帧率表示一秒钟发送的图像数量;输入模式包括灰度图、RGB、YUV444、YUV422和YUV420;压缩质量系数Q的范围为1~100,代表压缩后图像的质量;编码输出模式包括灰度图、YUV444、YUV422和YUV420;输出带宽限制为编码输出带宽B,本发明需要将编码输出码流控制在此范围内。应当理解的是,输出带宽限制是一个预设的阈值,本发明需要控制编码输出码流使其小于等于预设的输出带宽限制。
需要说明的是,当输入模式为灰度图时,编码输出模式仅可以是灰度图;当输入模式为RGB或YUV444时,编码输出模式可以是灰度图、YUV420、YUV422或YUV444;当输入模式为YUV422时,编码输出模式可以是灰度图、YUV420或YUV422;当输入模式为YUV420时,编码输出模式可以是灰度图或YUV420。
本实施例中,优化策略包括接受优化与否、最大可接受缩放系数、最低可接受质量系数、最大可接受抽帧间隔和接受灰度图与否等等。其中,接受优化与否和接受灰度图与否均有外部配置输入,例如,对于接受优化与否,当用户输入1时表示接受优化,当用户输入0时表示不接受优化;对于接受灰度图,当用户输入1时表示接受灰度图,当用户输入0时表示不接受灰度图。
本实施例中,优化模式确定了在输出带宽有限的情况下,输出码流的优化方向。优化模式包括输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化和输出质量可优化。具体包括:
①输出图像分辨率可优化:需同时配置最大缩小倍数,默认值为4,即原图的长和宽均缩小4倍。
②输出帧率可优化:需同时配置最大抽帧数,默认值为5,即每接收5帧图像,选取一帧进行压缩处理输出。
③编码输出模式可优化:即输出为YUV444、YUV422、YUV420和灰度图可优化,需配置是否接收灰度图,默认不接受。
④输出质量可优化:需同时配置最低可接收的质量,默认为30。
四种优化模式需配置优先级,默认优先级为:编码输出模式可优化>输出质量可优化>输出图像分辨率可优化>输出帧率可优化。应当理解的是,四种优化模式可任意配置,其优先级可以根据实际需要进行配置。
(2)判断输入图像的配置参数是否发生改变,若发生改变,则根据输入图像的配置参数对图像进行优化,对优化后的图像执行步骤(3);否则,直接执行步骤(3)。
如图2所示,显示的是默认优先级,四种优化模式的优先级为:编码输出模式可优化>输出质量可优化>输出图像分辨率可优化>输出帧率可优化,以此默认优先级为例,当输入图像的配置参数发生变化时,执行以下步骤:
(2.1)在每幅图像输入开始时,判断输入图像的配置参数是否发生改变,若发生改变,则执行步骤(2.2);否则,直接执行步骤(3)。
应当理解的是,将当前输入图像的配置参数与前一帧输入图像的配置参数进行比对,即可判断出输入图像的配置参数是否发生改变。
(2.2)根据优化策略判断输入图像的配置参数是否支持优化,若支持优化,则执行步骤(2.3);否则,直接执行步骤(3)。
本实施例中,根据优化策略中的接受优化与否即可判断输入图像的配置参数是否支持优化。进一步地,可以为接受优化与否设置配置参数选项,例如“1”代表支持优化,“0”代表不支持优化,可以由用户选择配置,判断接受优化与否这个配置参数的时候,当用户输入1表示支持优化,当用户输入0表示不支持优化。
需要说明的是,支持优化代表用户为了保证输出带宽可以接受比自己设置的参数差的输出结果,比如设置压缩倍率是10倍,10倍压缩会超出输出带宽限制,若用户选择支持优化,则在编码前会将10倍的压缩参数向下更新至15倍甚至更多倍来保证输出带宽限制;若用户选择不支持优化,则仍然会按照用户的配置参数进行压缩编码,如此可能会导致输出图像超出带宽限制,发生传输错误。
(2.3)为输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化和输出质量可优化四种优化模式设置优先级,按照优先级从大到小的顺序对图像进行优化,对优化后的图像执行步骤(3)。
本实施例中,优化模式包括输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化和输出质量可优化,对这四种优化模式设置优先级,例如,将优先级分别设置为1、2、3、4。本实施例中的默认优先级为:编码输出模式可优化的优先级为4,输出质量可优化的优先级为3,输出图像分辨率可优化的优先级为2,输出帧率可优化的优先级为1;按照从大到小的顺序对输出图像进行优化,即按照编码输出模式可优化>输出质量可优化>输出图像分辨率可优化>输出帧率可优化的顺序进行优化,表示先对编码输出模式进行优化,再对输出质量进行优化,然后对输出图像分辨率进行优化,最后对输出帧率进行优化,如图2所示。
示例性地,按照默认优先级对输出图像进行优化,具体包括如下步骤:
(2.3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则执行步骤(2.3.7);否则,执行步骤(2.3.2)。
(2.3.2)判断输入图像的输入模式是否为RGB或YUV444,若输入模式为RGB或YUV444, 则获取YUV444所需带宽,并判断当前所需输出带宽是否大于等于YUV444所需带宽,若当前所需输出带宽大于等于YUV444所需带宽,则将编码输出模式配置为YUV444,并进入步骤(3);否则,执行步骤(2.3.4);若输入模式不为RGB或YUV444,则执行步骤(2.3.3)。
本实施例中,压缩比的获取方法具体为:根据输入图像的输入模式和质量系数查找压缩比表,以获取压缩比。
应当理解的是,质量系数决定了当前的压缩比,根据质量系数和图片的格式比如YUV444、YUV420在压缩比表中进行查找,可以查找到对应的压缩比。压缩比表是一个预设好的表,专门用于存放压缩比。
本实施例中,带宽表是一个根据经验提前固化的表,该带宽表是一个经验值查找表,查找带宽表即可查询到YUV444所需带宽、YUV422所需带宽、YUV420所需带宽、灰度图所需带宽等。因此,根据输入图像的分辨率、帧率、量化位宽和压缩比查找带宽表,即可获取YUV444所需带宽、YUV422所需带宽、YUV420所需带宽、灰度图所需带宽等。
本实施例中,当前所需输出带宽的获取方法具体为:根据输入图像的大小、帧率、输出图像格式、质量系数和压缩比获取当前所需输出带宽。
示例性地,输入彩色图像大小是500×500,量化位宽是8bit,帧率为30,输入质量系数50,输出格式为YUV444。原始图像大小为500×500×8×3bit,根据质量系数查找预设的压缩比表,假设查找到YUV444在质量系数为50的条件下的压缩比为10,那么理论上输出的图像大小为500×500×8×3×30/10/1024 = 17578.125Kbps,即为当前所需输出带宽理论值。
当前所需输出带宽为当前配置条件下需要的最小输出带宽。应当理解的是,真实输出带宽是由前端配置输入的,例如输出的接口是CameraLink Base,那么此接口的上限即是2.04Gbps,或者需要通过卫通链路传输,卫通分配带宽512Kbps,前端需要将此时的输出带宽(2.04Gbps或者512Kbps或其它)输入此模块,通过输入图像的大小、输出图像格式、质量系数和压缩比获取当前所需输出带宽,通过对比实际带宽和所需带宽判断当前参数是否需要被优化。例如实际带宽为8192Kbps,所需带宽计算为500×500×8×3×30/10/1024Kbps = 17578.125Kbps,显然所需带宽大于输出带宽,若当前配置接受优化,则显然需要进行优化处理,根据配置好的优先级逐项优化,直到所需输出带宽小于实际带宽。
(2.3.3)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则执行步骤(2.3.4);否则,执行步骤(2.3.5)。
(2.3.4)获取YUV422所需带宽,并判断当前所需输出带宽是否大于等于YUV422所需带宽,若当前所需输出带宽大于等于YUV422所需带宽,则将编码输出模式配置为YUV422,并进入步骤(3);否则,执行步骤(2.3.5)。
(2.3.5)获取YUV420所需带宽,并判断当前所需输出带宽是否大于等于YUV420所需带宽,若当前所需输出带宽大于等于YUV420所需带宽,则将编码输出模式配置为YUV420,并进入步骤(3);否则,执行步骤(2.3.6)。
(2.3.6)根据优化策略判断是否接受灰度图,若接受灰度图,执行步骤(2.3.7);否则,执行步骤(2.3.8)。
本实施例中,可以根据优化策略中的接受灰度图与否进行判断,即接受灰度图与否有外部配置输入,例如输入1时代表接受灰度图,输入0时代表不接受灰度图。
(2.3.7)获取灰度图所需带宽,并判断当前所需输出带宽是否大于等于灰度图所需带宽,若当前所需输出带宽大于等于灰度图所需带宽,则将编码输出模式配置为灰度图,并进入步骤(3);否则,执行步骤(2.3.8)。
(2.3.8)根据输入图像的帧率、输入模式、量化位宽、分辨率和输出带宽限制计算可适配输出带宽的第一压缩比,根据可适配输出带宽的第一压缩比、当前的图像编码输出模式以及该编码输出模式下的压缩比质量系数查找表获取可适配输出带宽的第一压缩质量系数,判断可适配输出带宽的第一压缩质量系数是否大于等于输入图像的压缩质量系数,若第一压缩质量系数大于等于压缩质量系数,则将压缩质量系数更新配置为第一压缩质量系数,并进入步骤(3);否则,执行步骤(2.3.9)。
进一步地,可适配输出带宽的第一压缩比的表达式为:
其中,R表示可适配输出带宽的第一压缩比,B为输出带宽限制,表示输入图像的帧率,C表示输入模式,当输入图像是彩色图像时,C=3,当输入图像是灰度图时,C=1,表示输入图像的分辨率,W表示量化位宽。
应当理解的是,输入图像的压缩质量系数为Q,可适配输出带宽的第一压缩质量系数表示为,若/>,则更新配置/>;若/>,则执行步骤(2.3.9)。
(2.3.9)根据编码输出模式和当前压缩质量系数获取当前第二压缩比,根据当前输入图像的帧率、输入模式、量化位宽和第二压缩比计算当前编码输出模式和压缩质量系数条件下的最优分辨率,根据输入图像的分辨率和最优分辨率计算缩放系数,判断缩放系数是否小于等于最大可接受缩放系数,若缩放系数小于等于最大可接受缩放系数,则根据该缩放系数更新配置图像的分辨率,并对同时对输入图像进行缩放处理后进入步骤(3);否则,执行步骤(2.3.10)。
应当理解的是,由于步骤(2.3.8)中未对压缩质量系数进行配置才执行的本步骤以及后续步骤,因此,当前压缩质量系数指的是当前输入图像的压缩质量系数Q;根据编码输出模式和当前压缩质量系数可以采用查表的方式获取当前第二压缩比。
进一步地,最优分辨率的计算公式为:
其中,表示当前编码输出模式和压缩质量系数条件下的最优分辨率(列×行),/>表示输入图像的帧率,C表示输入模式,/>表示第二压缩比,W表示量化位宽。
应当理解的是,最优分辨率指的是保持图像的横纵比不变,在当前编码输出模式和压缩质量系数条件下所支持的最大分辨率。
进一步地,缩放系数的计算公式为:
其中,scale表示缩放系数。
(2.3.10)根据当前配置的图像的最优分辨率、输入模式、输出带宽限制、量化位宽和当前第二压缩比计算当前编码输出模式和压缩质量系数条件下的最大帧率,根据最大帧率和输入图像的帧率计算抽帧间隔,判断抽帧间隔是否小于等于最大可接受抽帧间隔,若抽帧间隔小于等于最大可接受抽帧间隔,则按照抽帧间隔对输入图像进行抽帧处理后进入步骤(3);否则,向上位机发送错误状态代码,等待上位机重新配置新的配置参数。
进一步地,最大帧率可通过如下公式计算获取:
其中,表示当前编码输出模式和压缩质量系数条件下的最大帧率。
进一步地,抽帧间隔的计算公式为:
其中,N表示抽帧间隔,ceil代表向上取整。
综上所述,对输出图像进行优化:若优化结果为抽帧,则对输入图像进行抽帧处理;若优化结果为缩放,则对输入图像进行缩放处理;其他优化结果时更新对应的配置参数即可。
(3)根据输入图像的输入模式和编码输出模式对输入图像进行JPEG编码压缩,以获取编码压缩后的图像。
在遵循JPEG编码标准的前提下,对输入图像进行JPEG编码压缩。应当理解的是,JPEG是静态图像压缩的编码标准,这种编码系统非常有用,因为人类的眼睛对于亮度差异的敏感度高于色彩变化。
本实施例中,对输入图像进行JPEG编码压缩的流程如图3所示,具体包括以下步骤:
(3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则直接执行步骤(3.6);否则,执行步骤(3.2)。
(3.2)判断输入图像的输入模式是否为RGB,若输入模式为RGB,则对输入图像进行色域转换,将RGB转换为YUV(YCbCr),对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为RGB,则执行步骤(3.3)。
示例性地,以8位数据为例,将RGB转换为YUV的空间转换关系如下所示:
需要说明的是,当编码输出模式为YUV422或YUV420时,需要先对输入图像进行降采样处理,然后再执行步骤(3.6)。例如,当编码输出模式为YUV422时的降采样处理是Y分量不变,UV分量每间隔一个像素点取一个,降采样处理后的每个分量分别进入编码器进行编码,如图5所示。编码输出模式为YUV420时的降采样处理如图6所示。如图4所示,当编码输出模式为YUV444时,是直接进入编码器进行编码的,不需要降采样处理,因此YUV分量一直是不变的。图4-图6中,每一个方框代表一个像素点,圆代表每个像素点的YUV分量。
(3.3)判断输入图像的输入模式是否为YUV444,若输入模式为YUV444,则对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为YUV444,则执行步骤(3.4)。
(3.4)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则对编码输出模式进行判断:若编码输出模式为YUV422,则直接执行步骤(3.6);若编码输出模式为YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444,则向上位机发送错误状态代码;若输入模式不为YUV422,则执行步骤(3.5)。
(3.5)对编码输出模式进行判断:若编码输出模式为YUV420,则直接执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444或YUV422,则向上位机发送错误状态代码。
(3.6)将输入图像的每个通道划分为8×8的编码块,对每个通道的编码块进行标准JPEG编码压缩,直至整幅输入图像编码完成,以获取编码压缩后的图像。
本实施例中,标准JPEG编码压缩具体包括:首先对每个通道的编码块进行8×8的二维离散余弦变换(Discrete Cosine Transform,DCT),以获取转换结果,然后将转换结果结合量化表进行量化处理和Zigzag排序,最后对量化处理和Zigzag排序后的编码块进行编码输出,若下一个8×8的编码块的数据到来时,当前编码块仍未编译完成,则直接丢弃未编码高频信息,输出块编码结束标志,对下一个8×8编码块进行编码输出,依次进行直到整幅输入图像编码完成,获取编码压缩后的图像。
进一步地,量化处理具体为:根据当前压缩质量系数计算量化矩阵系数,根据量化矩阵系数计算当前压缩质量系数下的量化矩阵,以完成量化处理,表示为:
其中,F为量化矩阵系数,Q为当前压缩质量系数,为量化矩阵,/>为标准量化表,floor代表向下取整。
需要说明的是,Zigzag排序是JPEG协议中的标准过程,对应的排序图如图7所示,按照箭头所指对8×8编码块进行排序,如此做是为了将高频信息排到右下角,将携带更多信息的低频信息放到左上角。
应当理解的是,经过DCT变换后,图像的大部分信息集中在低频部分,高频部分为图像的细节信息和噪声,在流水线的设计条件下,若下一个编码块到来当前仍未编码结束会导致后续时序错乱,在这种异常情况下,通过舍弃当前编码块的高频信息可以防止错乱发生,也是一种对码流的控制方法。例如,待压缩原图如图8所示,图9为Q=50的压缩结果,此时的PSNR(Peak Signal to Noise Ratio,峰值信噪比)为31.2715,图10为丢弃每个8×8块的高频10位的结果,PSNR为31.2708,丢弃高频成分PSNR性能几乎不变。其中,PSNR值越大,代表失真越少,说明编码压缩后的图像质量越好。
(4)根据输出带宽限制和编码压缩后的图像的编码大小调节优化系数,以完成对JPEG编码码流的控制。
(4.1)对编码模块的输出进行累计计数,根据累计计数计算编码压缩后的图像的数据流的大小。
示例性地,编码压缩后的图像是8bit,编码模块的输出累计计数为1024个,即从图像开始到编码压缩结束一共输出了1024个,则数据流的大小S = 1024*8bit = 8192bit。
(4.2)根据数据流的大小和当前帧率计算第一输出带宽,表示为:
其中,为第一输出带宽,S为数据流的大小,/>为当前帧率。
(4.3)根据第一输出带宽和输出带宽限制以及当前优化方式调节并更新与当前优化方式对应的优化系数,以完成对JPEG编码码流的控制。
本实施例中,当前优化方式为图像压缩质量系数时,根据当前图像压缩质量系数、第一输出带宽和输出带宽限制调节并更新图像压缩质量系数,具体如下式所示:
其中,为更新后的图像压缩质量系数,/>为当前图像压缩质量系数,B为输出带宽限制,/>为第一输出带宽。
本实施例中,当前优化方式为帧率时,根据当前抽帧间隔、第一输出带宽和输出带宽限制调节并更新抽帧间隔,判断更新后的抽帧间隔是否小于等于最大可接受抽帧间隔,若更新后的抽帧间隔小于等于最大可接受抽帧间隔,则将更新后的抽帧间隔重新设置为抽帧间隔;否则,向上位机发送错误状态代码。
进一步地,更新后的抽帧间隔表示为:
其中,为更新后的抽帧间隔,/>表示向上取整,/>为当前抽帧间隔,B为输出带宽限制,/>为第一输出带宽。
需要说明的是,若更新后的抽帧间隔小于等于最大可接受抽帧间隔,则设置抽帧间隔为/>;若更新后的抽帧间隔/>大于最大可接受抽帧间隔,则向上位机发送错误状态代码。
本实施例中,当前优化方式为分辨率时,根据当前分辨率、第一输出带宽和输出带宽限制调节并更新分辨率,根据更新后的分辨率和输入图像的分辨率计算更新后的缩放系数,判断更新后的缩放系数是否小于等于最大可接受缩放系数,若更新后的缩放系数小于等于最大可接受缩放系数,则将更新后的缩放系数重新配置为图像缩放系数,并根据重新配置的图像缩放系数更新图像的分辨率;否则,向上位机发送错误状态代码。
进一步地,更新后的分辨率表示为:
其中,为更新后的分辨率(列×行),/>表示向下取整,B为输出带宽限制,/>为第一输出带宽。
进一步地,更新后的缩放系数表示为:
其中,为更新后的缩放系数,/>表示输入图像的分辨率。
需要说明的是,若更新后的缩放系数小于等于可接受最大缩放系数,则配置图像缩放系数为/>,并根据重新配置的图像缩放系数更新图像的分辨率;若更新后的缩放系数/>大于可接受最大缩放系数,则向上位机发送错误状态代码。
本实施例中,当前优化方式为编码输出模式时,根据输入模式、当前编码输出模式、第一输出带宽和输出带宽限制调节并更新编码输出模式。
具体地,包括以下情况:
(a)当输入模式为RGB或YUV444时,根据当前编码输出模式、第一输出带宽和输出带宽限制调节并更新编码输出模式。
(a1)当前编码输出模式为灰度图时,若,则将编码输出模式更新为YUV420;若/>,则将编码输出模式更新为YUV422;若/>,则将编码输出模式更新为YUV444;若/>,则根据当前数据流的大小重新优化编码参数。
(a2)当前编码输出模式为YUV420时,若,则将编码输出模式更新为YUV422;若/>,则将编码输出模式更新为YUV444;若/>,则将编码输出模式更新为灰度图。
(a3)当前编码输出模式为YUV422时,若,则将编码输出模式更新为YUV444;若/>,则将编码输出模式更新为YUV420;若/>,则将编码输出模式更新为灰度图。
(a4)当前编码输出模式为YUV444时,若,则将编码输出模式更新为YUV422;若/>,则将编码输出模式更新为YUV420;若/>,则将编码输出模式更新为灰度图。
(b)当输入模式为YUV422时,根据当前编码输出模式、第一输出带宽和输出带宽限制调节并更新编码输出模式。
(b1)当前编码输出模式为灰度图时,若,则将编码输出模式更新为YUV420;若/>,则将编码输出模式更新为YUV422。
(b2)当前编码输出模式为YUV420时,若,则将编码输出模式更新为YUV422;若/>,则将编码输出模式更新为灰度图。
(b3)当前编码输出模式为YUV422时,若,则将编码输出模式更新为YUV420;若/>,则将编码输出模式更新为灰度图。
(c)当输入模式为YUV420时,根据当前编码输出模式、第一输出带宽和输出带宽限制调节并更新编码输出模式。
(c1)当前编码输出模式为灰度图时,若,则将编码输出模式更新为YUV420。
(c2)当前编码输出模式为YUV420时,若,则将编码输出模式更新为灰度图。
本发明基于FPGA实现JPEG图像编码,同时根据编码码流大小和输出带宽大小,通过调节编码参数实时调节JPEG编码器输出码流;本发明采用流水线设计,处理延迟低,适配灰度图和彩色图,根据输出带宽实时调节编码器,在保证图像大小满足带宽的前提下,保证编码质量,提高了输出带宽的利用率。
与前述基于FPGA的JPEG编码码流控制方法的实施例相对应,本发明还提供了基于FPGA的JPEG编码码流控制装置的实施例。
参见图11,本发明实施例提供的一种基于FPGA的JPEG编码码流控制装置,包括一个或多个处理器,用于实现上述实施例中的基于FPGA的JPEG编码码流控制方法。
本发明基于FPGA的JPEG编码码流控制装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本发明基于FPGA的JPEG编码码流控制装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图11所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的基于FPGA的JPEG编码码流控制方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。
Claims (7)
1.一种基于FPGA的JPEG编码码流控制方法,其特征在于,包括以下步骤:
(1)确定输入图像的配置参数,所述配置参数包括分辨率、帧率、输入模式、量化位宽、压缩质量系数、编码输出模式、输出带宽限制、优化策略和优化模式;
所述优化策略包括接受优化与否、最大可接受缩放系数、最低可接受质量系数、最大可接受抽帧间隔和接受灰度图与否;
所述优化模式包括输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化、输出质量可优化;
(2)判断输入图像的配置参数是否发生改变,若发生改变,则根据输入图像的配置参数对图像进行优化,对优化后的图像执行步骤(3);否则,直接执行步骤(3);
所述步骤(2)包括以下子步骤:
(2.1)在每幅图像输入开始时,判断输入图像的配置参数是否发生改变,若发生改变,则执行步骤(2.2);否则,直接执行步骤(3);
将当前输入图像的配置参数与前一帧输入图像的配置参数进行比对,判断输入图像的配置参数是否发生改变;
(2.2)根据优化策略判断输入图像的配置参数是否支持优化,若支持优化,则执行步骤(2.3);否则,直接执行步骤(3);
(2.3)为输出图像分辨率可优化、输出帧率可优化、编码输出模式可优化和输出质量可优化四种优化模式设置优先级,按照优先级从大到小的顺序对图像进行优化,对优化后的图像执行步骤(3);
将所述编码输出模式可优化的优先级设置为4,将所述输出质量可优化的优先级设置为3,将所述输出图像分辨率可优化的优先级设置为2,将所述输出帧率可优化的优先级设置为1;按照优先级从大到小对输出图像进行优化,包括以下子步骤:
(2.3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则执行步骤(2.3.7);否则,执行步骤(2.3.2);
(2.3.2)判断输入图像的输入模式是否为RGB或YUV444,若输入模式为RGB或YUV444,则获取YUV444所需带宽,并判断当前所需输出带宽是否大于等于YUV444所需带宽,若当前所需输出带宽大于等于YUV444所需带宽,则将编码输出模式配置为YUV444,并进入步骤(3);否则,执行步骤(2.3.4);若输入模式不为RGB或YUV444,则执行步骤(2.3.3);
(2.3.3)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则执行步骤(2.3.4);否则,执行步骤(2.3.5);
(2.3.4)获取YUV422所需带宽,并判断当前所需输出带宽是否大于等于YUV422所需带宽,若当前所需输出带宽大于等于YUV422所需带宽,则将编码输出模式配置为YUV422,并进入步骤(3);否则,执行步骤(2.3.5);
(2.3.5)获取YUV420所需带宽,并判断当前所需输出带宽是否大于等于YUV420所需带宽,若当前所需输出带宽大于等于YUV420所需带宽,则将编码输出模式配置为YUV420,并进入步骤(3);否则,执行步骤(2.3.6);
(2.3.6)根据优化策略判断是否接受灰度图,若接受灰度图,执行步骤(2.3.7);否则,执行步骤(2.3.8);
(2.3.7)获取灰度图所需带宽,并判断当前所需输出带宽是否大于等于灰度图所需带宽,若当前所需输出带宽大于等于灰度图所需带宽,则将编码输出模式配置为灰度图,并进入步骤(3);否则,执行步骤(2.3.8);
(2.3.8)根据输入图像的帧率、输入模式、量化位宽、分辨率和输出带宽限制计算可适配输出带宽的第一压缩比,根据可适配输出带宽的第一压缩比、当前的图像编码输出模式以及该编码输出模式下的压缩比质量系数查找表获取可适配输出带宽的第一压缩质量系数,判断可适配输出带宽的第一压缩质量系数是否大于等于输入图像的压缩质量系数,若第一压缩质量系数大于等于压缩质量系数,则将压缩质量系数更新配置为第一压缩质量系数,并进入步骤(3);否则,执行步骤(2.3.9);
(2.3.9)根据编码输出模式和当前压缩质量系数获取当前第二压缩比,根据当前输入图像的帧率、输入模式、量化位宽和第二压缩比计算当前编码输出模式和压缩质量系数条件下的最优分辨率,根据输入图像的分辨率和最优分辨率计算缩放系数,判断缩放系数是否小于等于最大可接受缩放系数,若缩放系数小于等于最大可接受缩放系数,则根据该缩放系数更新配置图像的分辨率,并对同时对输入图像进行缩放处理后进入步骤(3);否则,执行步骤(2.3.10);
(2.3.10)根据当前配置的图像的最优分辨率、输入模式、输出带宽限制、量化位宽和当前第二压缩比计算当前编码输出模式和压缩质量系数条件下的最大帧率,根据最大帧率和输入图像的帧率计算抽帧间隔,判断抽帧间隔是否小于等于最大可接受抽帧间隔,若抽帧间隔小于等于最大可接受抽帧间隔,则按照抽帧间隔对输入图像进行抽帧处理后进入步骤(3);否则,向上位机发送错误状态代码,等待上位机重新配置新的配置参数;
(3)根据输入图像的输入模式和编码输出模式对输入图像进行JPEG编码压缩,以获取编码压缩后的图像;
(4)根据输出带宽限制和编码压缩后的图像的编码大小调节优化系数,以完成对JPEG编码码流的控制;
所述步骤(4)包括以下子步骤:
(4.1)对编码模块的输出进行累计计数,根据累计计数计算编码压缩后的图像的数据流的大小;
(4.2)根据数据流的大小和当前帧率计算第一输出带宽;
(4.3)根据第一输出带宽和输出带宽限制以及当前优化方式调节并更新与当前优化方式对应的优化系数,以完成对JPEG编码码流的控制;
当前优化方式为图像压缩质量系数时,对应的优化系数为图像压缩质量系数;当前优化方式为帧率时,对应的优化系数为抽帧间隔;当前优化方式为分辨率时,对应的优化系数为分辨率;当前优化方式为编码输出模式时,对应的优化系数为编码输出模式。
2.根据权利要求1所述的基于FPGA的JPEG编码码流控制方法,其特征在于,所述分辨率大于16×16像素;所述帧率为一秒钟发送的图像数量;所述输入模式包括灰度图、RGB、YUV444、YUV422和YUV420;所述压缩质量系数的范围为1~100;所述编码输出模式包括灰度图、YUV444、YUV422和YUV420;所述输出带宽限制为编码输出带宽阈值。
3.根据权利要求1所述的基于FPGA的JPEG编码码流控制方法,其特征在于,所述YUV444所需带宽、所述YUV422所需带宽、所述YUV420所需带宽或所述灰度图所需带宽的获取方法具体为:根据输入图像的输入模式和质量系数查找压缩比表,以获取压缩比;根据输入图像的分辨率、帧率、量化位宽和压缩比查找带宽表,以获取YUV444所需带宽、YUV422所需带宽、YUV420所需带宽或灰度图所需带宽。
4.根据权利要求1所述的基于FPGA的JPEG编码码流控制方法,其特征在于,所述步骤(3)包括以下子步骤:
(3.1)判断输入图像的输入模式是否为灰度图,若输入模式为灰度图,则直接执行步骤(3.6);否则,执行步骤(3.2);
(3.2)判断输入图像的输入模式是否为RGB,若输入模式为RGB,则对输入图像进行色域转换,将RGB转换为YUV,对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为RGB,则执行步骤(3.3);
(3.3)判断输入图像的输入模式是否为YUV444,若输入模式为YUV444,则对编码输出模式进行判断:若编码输出模式为YUV444,则直接执行步骤(3.6);若编码输出模式为YUV422或YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若输入模式不为YUV444,则执行步骤(3.4);
(3.4)判断输入图像的输入模式是否为YUV422,若输入模式为YUV422,则对编码输出模式进行判断:若编码输出模式为YUV422,则直接执行步骤(3.6);若编码输出模式为YUV420,则对输入图像进行降采样处理后执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444,则向上位机发送错误状态代码;若输入模式不为YUV422,则执行步骤(3.5);
(3.5)对编码输出模式进行判断:若编码输出模式为YUV420,则直接执行步骤(3.6);若编码输出模式为灰度图,则直接丢弃UV分量,仅Y分量执行步骤(3.6);若编码输出模式为YUV444或YUV422,则向上位机发送错误状态代码;
(3.6)将输入图像的每个通道划分为8×8的编码块,对每个通道的编码块进行标准JPEG编码压缩,直至整幅输入图像编码完成,以获取编码压缩后的图像。
5.根据权利要求4所述的基于FPGA的JPEG编码码流控制方法,其特征在于,所述步骤(3.6)中标准JPEG编码压缩具体包括:首先对每个通道的编码块进行8×8的二维离散余弦变换,以获取转换结果,然后将转换结果结合量化表进行量化处理和Zigzag排序,最后对量化处理和Zigzag排序后的编码块进行编码输出,若下一个8×8的编码块的数据到来时,当前编码块仍未编译完成,则直接丢弃未编码高频信息,输出块编码结束标志,对下一个8×8编码块进行编码输出,依次进行直到整幅输入图像编码完成,获取编码压缩后的图像。
6.一种基于FPGA的JPEG编码码流控制装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-5中任一项所述的基于FPGA的JPEG编码码流控制方法。
7.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,用于实现权利要求1-5中任一项所述的基于FPGA的JPEG编码码流控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744995.1A CN116489361B (zh) | 2023-06-25 | 2023-06-25 | 一种基于fpga的jpeg编码码流控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744995.1A CN116489361B (zh) | 2023-06-25 | 2023-06-25 | 一种基于fpga的jpeg编码码流控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116489361A CN116489361A (zh) | 2023-07-25 |
CN116489361B true CN116489361B (zh) | 2023-09-26 |
Family
ID=87212332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744995.1A Active CN116489361B (zh) | 2023-06-25 | 2023-06-25 | 一种基于fpga的jpeg编码码流控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116489361B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013038656A (ja) * | 2011-08-09 | 2013-02-21 | Canon Inc | 画像符号化装置及びその制御方法 |
CN107623851A (zh) * | 2017-09-01 | 2018-01-23 | 苏州科达科技股份有限公司 | 视频码流传输控制装置及控制方法 |
CN111343455A (zh) * | 2020-02-25 | 2020-06-26 | 西安万像电子科技有限公司 | 编码方式确定方法及装置 |
CN112468855A (zh) * | 2020-11-11 | 2021-03-09 | 西安万像电子科技有限公司 | 数据传输方法及装置、非易失性存储介质 |
CN113038177A (zh) * | 2021-02-09 | 2021-06-25 | 西安万像电子科技有限公司 | 参数调整方法及装置 |
CN114786011A (zh) * | 2022-06-22 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种jpeg图像压缩的方法、系统、设备和存储介质 |
-
2023
- 2023-06-25 CN CN202310744995.1A patent/CN116489361B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013038656A (ja) * | 2011-08-09 | 2013-02-21 | Canon Inc | 画像符号化装置及びその制御方法 |
CN107623851A (zh) * | 2017-09-01 | 2018-01-23 | 苏州科达科技股份有限公司 | 视频码流传输控制装置及控制方法 |
CN111343455A (zh) * | 2020-02-25 | 2020-06-26 | 西安万像电子科技有限公司 | 编码方式确定方法及装置 |
CN112468855A (zh) * | 2020-11-11 | 2021-03-09 | 西安万像电子科技有限公司 | 数据传输方法及装置、非易失性存储介质 |
CN113038177A (zh) * | 2021-02-09 | 2021-06-25 | 西安万像电子科技有限公司 | 参数调整方法及装置 |
CN114786011A (zh) * | 2022-06-22 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种jpeg图像压缩的方法、系统、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
JPEG 2000和JPEG-LS的实现及遥感影像压缩失真分析;林瑶瑶;艾波;高小明;;测绘与空间地理信息(02);全文 * |
林瑶瑶 ; 艾波 ; 高小明 ; .JPEG 2000和JPEG-LS的实现及遥感影像压缩失真分析.测绘与空间地理信息.2020,(02),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116489361A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9716891B2 (en) | Quantization method and apparatus in encoding/decoding | |
US10715816B2 (en) | Adaptive chroma downsampling and color space conversion techniques | |
US20220312006A1 (en) | Cross-component adaptive loop filter for chroma | |
JP3846488B2 (ja) | 画像データ圧縮装置、エンコーダ、電子機器及び画像データ圧縮方法 | |
US8493499B2 (en) | Compression-quality driven image acquisition and processing system | |
US10887365B2 (en) | System and methods for bit rate control | |
CN108235037B (zh) | 对图像数据进行编码和解码 | |
CN115606179A (zh) | 用于使用学习的下采样特征进行图像和视频编码的基于学习的下采样的cnn滤波器 | |
EP3711302B1 (en) | Spatially adaptive quantization-aware deblocking filter | |
CN113313774A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
WO2021136110A1 (zh) | 编码方法及编码器 | |
US8755621B2 (en) | Data compression method and data compression system | |
US20120308147A1 (en) | Image processing device, image processing method, and program | |
CN116489361B (zh) | 一种基于fpga的jpeg编码码流控制方法和装置 | |
CN112040240B (zh) | 数据处理方法、设备和存储介质 | |
CN114467298B (zh) | 一种图像信号转换处理方法、装置及终端设备 | |
CN111556320A (zh) | 数据处理系统 | |
CN112788364B (zh) | 码流动态调整装置、方法及计算机可读存储介质 | |
WO2022151053A1 (zh) | 数据处理方法、装置及系统、计算机存储介质 | |
CN110753229A (zh) | 基于h.265编码的视频采集装置及方法 | |
WO2023246655A1 (zh) | 一种图像编码、解码方法及编码、解码装置 | |
US20090074059A1 (en) | Encoding method and device for image data | |
CN116248895B (zh) | 虚拟现实全景漫游的视频云转码方法及系统 | |
WO2022077489A1 (zh) | 数据处理方法、设备和存储介质 | |
CN117750127A (zh) | 一种图像处理方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |