CN117424972A - 一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 - Google Patents
一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 Download PDFInfo
- Publication number
- CN117424972A CN117424972A CN202311177758.8A CN202311177758A CN117424972A CN 117424972 A CN117424972 A CN 117424972A CN 202311177758 A CN202311177758 A CN 202311177758A CN 117424972 A CN117424972 A CN 117424972A
- Authority
- CN
- China
- Prior art keywords
- data
- rgb
- yuv
- coding
- format
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000006243 chemical reaction Methods 0.000 claims abstract description 30
- 230000006978 adaptation Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000638 stimulation Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
- G09G5/04—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using circuits for interfacing with colour displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/06—Adjustment of display parameters
- G09G2320/0666—Adjustment of display parameters for control of colour parameters, e.g. colour temperature
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Color Television Systems (AREA)
Abstract
本发明涉及屏幕显示技术领域,尤其是涉及一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,包括如下程序模块:信号源模块,信号源模块具有原始RGB编码数据或YUV编码数据;编码转换模块,用于将原始RGB编码数据或YUV编码数据变换为YUV的数据内容,但保持RGB编码格式的数据;RGB编码接口输出模块,用于把编码变换后数据按RGB编码格式输出;DPI屏幕显示模块,用于根据RGB编码格式的YUV编码数据来进行显示;通过将信号源模块中的RGB编码数据转化为RGB编码格式的YUV编码数据,成本,体积,功耗要求大大降低,减少一个硬件转换芯片的成本,减少一个硬件转换芯片的体积及周围配套电路的体积,减少一个硬件转换芯片的功耗;还可以扩大RGB输出接口类型的信号源适配的屏幕种类。
Description
技术领域
本发明涉及屏幕显示技术领域,尤其是涉及一种将YUV编码数据以RGB编码格式输出的屏幕显示方法。
背景技术
RGB模式是一种加色法模式,通过R、G、B的辐射量,可描述出任一颜色。计算机定义颜色时R、G、B三种成分的取值范围是0-255,0表示没有刺激量,255表示刺激量达最大值。R、G、B均为255时就合成了白光,R、G、B均为0时就形成了黑色。在显示屏上显示颜色定义时,往往采用这种模式。图像如用于电视、幻灯片、网络、多媒体,一般使用RGB模式。常用的格式是RGB888(24Bit)。
YUV,是一种颜色编码方法。常使用在各个视频处理组件中。YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。YUV是编译true-color颜色空间(colorspace)的种类,Y'UV、YUV、YCBCr、YPBPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。为节省带宽起见,大多数YUV格式平均使用的每像素位数都少于24位。主要的抽样(subsample)格式有YCBCr4:2:0、YCBCr4:2:2、YCBCr4:1:1和YCBCr4:4:4。YUV的表示法称为A:B:C表示法:4:4:4表示完全取样。4:2:2表示2:1的水平取样,垂直完全采样。4:2:0表示2:1的水平取样,垂直2:1采样。4:1:1表示4:1的水平取样,垂直完全采样。
DPI(DisplayPixelInterface)屏幕,数据采用并口在一个时钟周期就传输一个像素的数据。DPI的数据线和控制线分离,直接由信号源控制时序,所以信号源需要提供显示用的时钟信号,包括像素时钟Pclk、垂直同步信号Vsync和水平同步信号Hsync。这种屏由信号源直接控制,显示速度快,适合显示视频或者动画;DPI接口的屏通常是由系统内存分配一部分空间当显存使用,只要系统内存大小足够,屏可以做很大,但因为是并口传输,所以传输速率和传输距离比较有限。DPI屏幕显示设备的显示接口可以是RGB888YUV422等数据编码格式,像素时钟Pclk、垂直同步信号Vsync和水平同步信号Hsync,相同的固定的参数,不同的是显示接口的数据编码格式。传统上信号源输出为RGB编码接口,要用YUV编码接口的DPI屏幕显示,使用硬件芯片来解决,是因为编码格式的差异,这中间需要硬件芯片进行编码格式转换适配。信号源输出RGB888,送到芯片的RGB888,转换后16BitsYUVOutput输出到DPI屏幕YUV显示接口。
如图1所示,传统上使用该技术,需要硬件芯片来进行编码转换,适配后再送到显示设备,显然存在成本,体积,功耗等方面的缺点。设计产品时对成本,体积,功耗要求较高,导致经济上不适宜,体积太大设备没有空间安放,功耗高不满足设计指标等问题,导致设计产品失败。
发明内容
本发明为克服上述情况不足,旨在提供一种能解决上述问题的技术方案。
一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,包括如下程序模块:
信号源模块,信号源模块具有原始RGB编码数据或YUV编码数据;
编码转换模块,用于将原始RGB编码数据或YUV编码数据变换为YUV的数据内容,但保持RGB编码格式的数据;
RGB编码接口输出模块,用于把编码变换后数据按RGB编码格式输出;
DPI屏幕显示模块,用于根据RGB编码格式的YUV编码数据来进行显示;
其中,DPI屏幕显示模块设置有YUV屏幕接口,YUV屏幕接口具有Y数据通道和UV数据通道,RGB编码接口输出模块具有R数据通道、G数据通道和B数据通道,R数据通道连接Y数据通道,G数据通道连接UV数据通道,B数据通道不连接,把编码变换后的数据按RGB编码格式送往YUV编码格式的YUV屏幕接口。
优选地,把RGB编码数据转换为YUV编码数据,按RGB的编码格式用C语言的方式转换具体如下:
按RGB编码格式的排列,先把RGB编码数据转换为YUV编码数据,再把YUV编码数据按RGB编码格式排列,若信号源模块的编码数据为YUV编码数据,则直接将YUV编码数据按RGB编码格式排列,将按RGB编码格式排列好的YUV编码数据送到RGB编码接口输出模块。
优选地,RGB编码数据转换为YUV编码数据,是将信号源模块的每一组数据从头到尾读取,即依次将RGB编码数据中的R数据段取出,将RGB编码数据中的G数据段取出,将RGB编码数据中的B数据段取出,将取出的R数据段转换为Y数据内容后,再送到RGB编码接口输出模块的R数据通道;将取出的G数据段的奇数位转换为U数据内容后,再送到RGB编码接口输出模块的G数据通道;将取出的G数据段的偶数位转换为V数据内容后,再送到RGB编码接口输出模块的G数据通道;B数据段可以填充任意数据或不用送数据;最后,把转换后的YUV编码数据内容通过RGB编码接口送到DPI屏幕显示模块的YUV屏幕接口。
优选地,DPI屏幕显示模块的输出屏幕为YUV4:2:2编码格式,基于YUV4:2:2编码格式,依次将每组YUV编码数据按YsUYdV排列,并根据RGB编码格式的排列方式,将YsUYdV填充为YsUYdV*来进行输出,其中,*为填充RGB编码格式的任意数据,Ys和Yd均为一组YUV编码数据中的Y数据。
优选地,将Y数据发送到RGB编码接口输出模块的R数据通道,是按照取Ys数据后下次取Yd数据,取Yd数据后下次取Ys数据的方式依次送到RGB编码接口输出模块的R数据通道;将U数据和V数据发送到RGB编码接口输出模块的G数据通道,是按照取U数据后下次取V数据,取V数据后下次取U数据的方式依次送到RGB编码接口输出模块的G数据通道。
优选地,将RGB编码数据变换为YUV编码数据内容的转换公式为:
Y=0.299*R+0.587*G+0.114*B;
U=-0.169*R-0.331*G+0.5*B+128;
V=0.5*R-0.419*G-0.081*B+128。
与现有技术相比,本发明的有益效果是:
通过将信号源模块中的RGB编码数据转化为RGB编码格式的YUV编码数据,设置G数据通道连接UV数据通道,B数据通道不连接,把编码变换后的数据按RGB编码格式送往YUV编码格式的YUV屏幕接口,在电路上像素时钟 Pclk、垂直同步信号 Vsync 和水平同步信号Hsync均不需要做变动,从而免去了硬件芯片来进行编码转换,成本,体积,功耗要求大大降低,减少一个硬件转换芯片的成本,减少一个硬件转换芯片的体积及周围配套电路的体积,减少一个硬件转换芯片的功耗;还可以扩大RGB输出接口类型的信号源适配的屏幕种类。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明现有技术的模块连接框图;
图2是本发明的模块连接框图;
图3是本发明的程序流程框图;
图4是本发明中DPI屏幕的主控输出电路原理图;
图5是本发明中YUV屏幕接口的电路原理图;
图6是本发明中DPI屏幕的电源电路原理图。
图中的附图标记及名称如下:
信号源模块1、编码转换模块2、RGB编码接口输出模块3、DPI屏幕显示模块4、YUV屏幕接口5。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2-6,本发明实施例中,一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,包括如下程序模块:
信号源模块1,信号源模块1具有原始RGB编码数据或YUV编码数据;
编码转换模块2,用于将原始RGB编码数据或YUV编码数据变换为YUV的数据内容,但保持RGB编码格式的数据;
RGB编码接口输出模块3,用于把编码变换后数据按RGB编码格式输出;
DPI屏幕显示模块4,用于根据RGB编码格式的YUV编码数据来进行显示;
其中,DPI屏幕显示模块4设置有YUV屏幕接口5,YUV屏幕接口5具有Y数据通道和UV数据通道,RGB编码接口输出模块3具有R数据通道、G数据通道和B数据通道,R数据通道连接Y数据通道,G数据通道连接UV数据通道,B数据通道不连接,把编码变换后的数据按RGB编码格式送往YUV编码格式的YUV屏幕接口5;
还包括缩放适配模块,缩放适配模块并非必须程序,其用于对编码变换后的数据做缩放或保存,匹配各种DPI屏幕显示模块4的屏幕尺寸或将数据转送到其它显示设备。
上述技术方案中,把RGB编码数据转换为YUV编码数据,按RGB的编码格式用C语言的方式转换具体如下:按RGB编码格式的排列,先把RGB编码数据转换为YUV编码数据,再把YUV编码数据按RGB编码格式排列,若信号源模块1的编码数据为YUV编码数据,则直接将YUV编码数据按RGB编码格式排列,将按RGB编码格式排列好的YUV编码数据送到RGB编码接口输出模块3。
RGB编码数据转换为YUV编码数据,是将信号源模块1的每一组数据从头到尾读取,即依次将RGB编码数据中的R数据段取出,将RGB编码数据中的G数据段取出,将RGB编码数据中的B数据段取出,将取出的R数据段转换为Y数据内容后,再送到RGB编码接口输出模块3的R数据通道;将取出的G数据段的奇数位转换为U数据内容后,再送到RGB编码接口输出模块3的G数据通道;将取出的G数据段的偶数位转换为V数据内容后,再送到RGB编码接口输出模块3的G数据通道;B数据段可以填充任意数据或不用送数据;最后,把转换后的YUV编码数据内容通过RGB编码接口送到DPI屏幕显示模块4的YUV屏幕接口5。
DPI屏幕显示模块4的输出屏幕为YUV4:2:2编码格式,基于YUV4:2:2编码格式,依次将每组YUV编码数据按YsUYdV排列,并根据RGB编码格式的排列方式,将YsUYdV填充为YsUYdV*来进行输出,其中,*为填充RGB编码格式的任意数据,Ys和Yd均为一组YUV编码数据中的Y数据。
将Y数据发送到RGB编码接口输出模块3的R数据通道,是按照取Ys数据后下次取Yd数据,取Yd数据后下次取Ys数据的方式依次送到RGB编码接口输出模块3的R数据通道;将U数据和V数据发送到RGB编码接口输出模块3的G数据通道,是按照取U数据后下次取V数据,取V数据后下次取U数据的方式依次送到RGB编码接口输出模块3的G数据通道。
【实施例1】
本例以信号源为RGB编码,编码接口是RGB,DPI屏幕为YUV4:2:2(也称为YUYV(packet)编码接口的YUV屏幕接口5为例,不带缩放功能,适配屏幕显示尺寸用其它软件功能实现。
(下面具体实施方式里,有另外一种信号源为YUV编码的案例,不需要YUV与RGB转换公式,直接做编码格式转换,带缩放功能,用于适配屏幕显示尺寸)
采用的编码变换方法是基于标准的YUV与RGB转换公式:
Y=0.299*R+0.587*G+0.114*B;
U=-0.169*R-0.331*G+0.5*B+128;
V=0.5*R-0.419*G-0.081*B+128。
因为信号源输出的编码接口是RGB,而DPI屏幕显示模块4的编码接口是YUV.所以依次将信号源数据转换为YUV的数据内容,同时保持RGB编码格式,送到信号源RGB接口输出,再送到DPI显示设备YUV接口屏幕;把RGB数据转换为YUV数据,按RGB的编码格式用C语言的方式转换为以下代码:
//按RGB编码格式的排列,先把RGB转换为YUV数据,把YUV数据按RGB编码排列。例如Y0U0Y1V1变为Y0U0*Y1V1*(*为填充RGB格式的任意数据)
memmove(yuv_Buf,src_Buffer,sizeof(yuv_Buf);
//把信号源的原始数据送到yuv_Buf,下面函数做转换
for(intj=0;j<(VO_WIDTH*VO_HEIGHT);j++);
//将信号源的每一帧数据从头到尾读取
{
temp_R=(yuv_Buf[j*3]);//将RGB数据中的R数据段取出
temp_G=(yuv_Buf[j*3+1]);//将RGB数据中的G数据段取出
temp_B=(yuv_Buf[j*3+2]);//将RGB数据中的B数据段取出
//取出的R数据段转换为Y数据内容后,再送到RGB接口的R数据通道
(yuv_Buf[j*3])=(unsiGnedchar)((temp_R*0.299)+(temp_G*0.587)+(temp_B*0.114));
//取出的G数据段的奇数位转换为U数据内容后,再送到RGB接口的G数据通道
if(write_u_v_flaG)
{
(yuv_Buf[j*3+1])=(siGnedchar)((0.5*temp_B)-(0.1684*temp_R)-(0.3316*temp_G)+128);
write_u_v_flaG=0;
}
//取出的G数据段的偶数位转换为V数据内容后,再送到RGB接口的G数据通道
else
{
(yuv_Buf[j*3+1])=(siGnedchar)((0.5*temp_R)-(0.4187*temp_G)-(0.0813*temp_B)+128);write_u_v_flaG=1;
}
//因为RG数据段已将YUV数据送完,B数据段可以填充任意数据或不用送数据
}
memmove(src_Buffer,yuv_Buf,sizeof(yuv_Buf);
//把变换后的YUV数据内容送到src_Buffer,然后就可以把变换后的YUV数据内容送到RGB接口,再送到YUV4:2:2的YUV屏幕接口5。
首先把信号源的原始数据送到编码变换模块,然后编码变换模块将信号源的每一帧数据从头到尾读取,接着在把信号源数据从头到尾读取过程中,将RGB数据中的R数据段取出,G数据段取出,B数据段取出。再取出的R数据段转换为Y数据内容后,送到RGB接口的R数据通道,取出的G数据段的奇数位转换为U数据内容后,再送到RGB接口的G数据通道,取出的G数据段的偶数位转换为V数据内容后,再送到RGB接口的G数据通道,同时因为RG数据段已将YUV数据内容送完,B数据段可以填充任意数据或不用送数据,最后把变换后的YUV数据内容送送到RGB接口,再送到YUV4:2:2的YUV屏幕接口5。
本控制方法可用在信号源为RGB输出,而屏幕为YUV显示接口的场景,用在热像仪、手机等近距离传输视频信号的智能终端上;例如,在热像仪上,原来屏幕为RGB显示接口,为适配YUV显示接口的屏幕,应用本发明方法,如图4-6所示。
【实施例2】
本例以信号源为YUV4:2:2,输出接口为RGB888,输出屏幕为YUV4:2:2(也称为YUYV(packet)编码格式为例说明具体应用;首先,电路上,像素时钟Pclk、垂直同步信号Vsync和水平同步信号Hsync,不需要做变动,其次LCD屏幕的电源按屏幕参数做适配;然后就对接数据内容显示接口:
信号源RGB接口的R数据通道,接DPI屏幕的Y数据通道。
信号源RGB接口的G数据通道,接DPI屏幕的UV数据通道。
信号源RGB接口的B数据通道,不需要连接
最后用本发明方法做软件编码转换,加上缩放功能,用于适配屏幕显示尺寸。如图2-3所示;
实际使用的代码(带缩放功能,用于适配屏幕)
FrameGet(frame_info.imaGe_frame)从信号源获取原始YUV数据
zoom_X_FRAME_T zoom_x_Frame;///缩放vi_width
DEL_X_FRAME_T Del_x_Frame;//得到合适的vi_width缩放倍数
SED_FRAME_T Sed_Frame;//得到合适的vi_width*vi_heiGht缩放倍数,输出
zoom_x_Frame.zoom_x_imaGe_Byte_size=vi_width*vi_heiGht*width_scaler*heiGht_scaler;
//定义一个最大的缩放的尺寸,输入信号的宽和高数据,乘以缩放倍数;
static uint8_t zoom_x_u_flaG=1;//设置G数据段的奇数位标志,用于转换为U数据内容
static uint32_t zoom_num=0;//设置R数据段的标志,用于转换为Y数据内容
static uint8_t zoom_y_flaG=1;//设置高度缩放倍数标志
uint32_t temp_Ys,temp_Yd,temp_U,temp_V;//YUV4:2:2编码是两个Y分量共用一组UV数据,Ys Yd均为Y数据内容
for(int j=0;j<(vi_size)/4;j++)//整个输入信号按YUYV排列,因此把输入像素总数除4把每个数据位取出。
{
temp_Ys=*(frame_info.imaGe_frame+j*4);//取出Ys
temp_U =*(frame_info.imaGe_frame+j*4+1);//取出U
temp_Yd=*(frame_info.imaGe_frame+j*4+2);//取出Yd
temp_V =*(frame_info.imaGe_frame+j*4+3);//取出V
//把YUV数据内容按RGB编码格式的排列,再乘以缩放倍数,Y0U0Y1V1变为Y0U0 *Y1V1*(*为填充RGB格式的任意数据)
for(int i=0;i<(yuv_rGB)*width_scaler;i++)
{
if(i%3==0) //取出所有Y数据内容 送R编码通道
{
if(zoom_y_flaG)//Ys数据
{
*(zoom_x_Frame.zoom_x_imaGe_frame+zoom_num)=temp_Ys;//Ys数据依次送到缩放后结构体
zoom_y_flaG=0;//取Ys数据后下次要取Yd
}
else //Yd数据
{
*(zoom_x_Frame.zoom_x_imaGe_frame+zoom_num)=temp_Yd;/Yd数据依次送到缩放后结构体
zoom_y_flaG=1;//取Yd数据后下次要取Ys
}
}
else if(i%3==1)//i%3==0是Y,i%3==1是所有Y后面的 U/V数据 送G编码通道
{
if(zoom_x_u_flaG) //U数据
{
*(zoom_x_Frame.zoom_x_imaGe_frame+zoom_num)=temp_U; //U数据依次送到缩放后结构体
zoom_x_u_flaG=0;//取U数据内容后下次要取V数据内容
}
else //V数据
{
*(zoom_x_Frame.zoom_x_imaGe_frame+zoom_num)=temp_V;//V数据依次送到缩放后结构体
zoom_x_u_flaG=1;//取V数据后下次要取U数据
}
}
else//填充RGB格式的任意数据
{
*(zoom_x_Frame.zoom_x_imaGe_frame+zoom_num)=0;
}
zoom_num++;//缩放的数据依次计数排列
}
}
zoom_num=0;///送完缩放数据后清0
Del_x_Frame.del_x_imaGe_Byte_size=vo_width* vi_heiGht * scaler;//行缩放,然后裁减多余缩放数据
uint32_t del_x_num=0;//定义一个变量用于累加
for(int i=0;i<zoom_x_Frame.zoom_x_imaGe_Byte_size;i++)//遍历缩放后的整行数据
{
if(i % divisior==0) //取合适约数,然后将缩放后的多余行数据裁减
{
del_x_num -= del_divi;//累加到满足条件后将缩放的多余数据裁减
}
else//缩放裁减后的数据填充满整行
{
*(Del_x_Frame.del_x_imaGe_frame+del_x_num)=*(zoom_x_Frame.zoom_x_imaGe_frame+i);//依次填充整行
}
del_x_num++;//一直累加,直到输入数据赋值到行缩放结构体完成
}
Sed_Frame.sed_imaGe_Byte_size=vo_width * vo_heiGht * scaler;///最终缩放后满足屏幕显示的尺寸
uint32_t row=0;//定义一个待裁减的列缩放数据
uint32_t k=0;//定义一个变量用于累加
for(int i=0;i<width;i++)///i是列数,缩放后的列数需要遍历后裁减
{
if((i!=0)&&(i % scaler==0))///满足条件缩放数据,继续缩放下一组数据
{
row++;///继续缩放下一组数据
}
if((i!=0)&&(i % divisior==0))//取合适约数,然后将缩放后的多余列数据裁减
{
k-=del_num;////累加到满足条件后将缩放的多余数据裁减
}
for(int j=0;j<vo_width * scaler;j++)///j是列字节数,一个一个赋值
{
*(Sed_Frame.sed_imaGe_frame+k*vo_width*scaler+j)=*(Del_x_Frame.del_x_imaGe_frame+row*vo_width*scaler+j);
//依次填充整列
}
k++;//一直累加,直到输入数据赋值到缩放结构体完成
if(k>vo_heiGht-1)//最后一个数据行
{
k=vo_heiGht-1;最后一个数据行完成后不再加
}
}
sendImaGe(Sed_Frame.sed_imaGe_frame;//`发送数据到RGB编码接口。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
Claims (6)
1.一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,包括如下程序模块:
信号源模块,信号源模块具有原始RGB编码数据或YUV编码数据;
编码转换模块,用于将原始RGB编码数据或YUV编码数据变换为YUV的数据内容,但保持RGB编码格式的数据;
RGB编码接口输出模块,用于把编码变换后数据按RGB编码格式输出;
DPI屏幕显示模块,用于根据RGB编码格式的YUV编码数据来进行显示;
其中,DPI屏幕显示模块设置有YUV屏幕接口,YUV屏幕接口具有Y数据通道和UV数据通道,RGB编码接口输出模块具有R数据通道、G数据通道和B数据通道,R数据通道连接Y数据通道,G数据通道连接UV数据通道,B数据通道不连接,把编码变换后的数据按RGB编码格式送往YUV编码格式的YUV屏幕接口。
2.根据权利要求1所述的一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,把RGB编码数据转换为YUV编码数据,按RGB的编码格式用C语言的方式转换具体如下:
按RGB编码格式的排列,先把RGB编码数据转换为YUV编码数据,再把YUV编码数据按RGB编码格式排列,若信号源模块的编码数据为YUV编码数据,则直接将YUV编码数据按RGB编码格式排列,将按RGB编码格式排列好的YUV编码数据送到RGB编码接口输出模块。
3.根据权利要求2所述的一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,RGB编码数据转换为YUV编码数据,是将信号源模块的每一组数据从头到尾读取,即依次将RGB编码数据中的R数据段取出,将RGB编码数据中的G数据段取出,将RGB编码数据中的B数据段取出,将取出的R数据段转换为Y数据内容后,再送到RGB编码接口输出模块的R数据通道;将取出的G数据段的奇数位转换为U数据内容后,再送到RGB编码接口输出模块的G数据通道;将取出的G数据段的偶数位转换为V数据内容后,再送到RGB编码接口输出模块的G数据通道;B数据段可以填充任意数据或不用送数据;最后,把转换后的YUV编码数据内容通过RGB编码接口送到DPI屏幕显示模块的YUV屏幕接口。
4.根据权利要求3所述的一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,DPI屏幕显示模块的输出屏幕为YUV4:2:2编码格式,基于YUV4:2:2编码格式,依次将每组YUV编码数据按YsUYdV排列,并根据RGB编码格式的排列方式,将YsUYdV填充为YsUYdV*来进行输出,其中,*为填充RGB编码格式的任意数据,Ys和Yd均为一组YUV编码数据中的Y数据。
5.根据权利要求4所述的一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,将Y数据发送到RGB编码接口输出模块的R数据通道,是按照取Ys数据后下次取Yd数据,取Yd数据后下次取Ys数据的方式依次送到RGB编码接口输出模块的R数据通道;将U数据和V数据发送到RGB编码接口输出模块的G数据通道,是按照取U数据后下次取V数据,取V数据后下次取U数据的方式依次送到RGB编码接口输出模块的G数据通道。
6.根据权利要求1-5中任一项所述的一种将YUV编码数据以RGB编码格式输出的屏幕显示方法,其特征在于,将RGB编码数据变换为YUV编码数据内容的转换公式为:
Y=0.299*R+0.587*G+0.114*B;
U=-0.169*R-0.331*G+0.5*B+128;
V=0.5*R-0.419*G-0.081*B+128。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311177758.8A CN117424972A (zh) | 2023-09-13 | 2023-09-13 | 一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311177758.8A CN117424972A (zh) | 2023-09-13 | 2023-09-13 | 一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117424972A true CN117424972A (zh) | 2024-01-19 |
Family
ID=89527320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311177758.8A Pending CN117424972A (zh) | 2023-09-13 | 2023-09-13 | 一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117424972A (zh) |
-
2023
- 2023-09-13 CN CN202311177758.8A patent/CN117424972A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11109076B2 (en) | Image transmission device, image transmission method, image reception device, and image reception method | |
US7557815B2 (en) | System and method for producing a video signal | |
US8072449B2 (en) | Workstation for processing and producing a video signal | |
JPH10509291A (ja) | コンピュータシステム内にビデオを生成するための装置と方法 | |
US8295364B2 (en) | System and method of video data encoding with minimum baseband data transmission | |
CN110830804B (zh) | 用于用信号通知画面/视频格式的方法和设备 | |
CN101102487A (zh) | 基于vga和hdmi两种显示模式的视频传输系统及方法 | |
US20190130546A1 (en) | Method and device for obtaining a second image from a first image when the dynamic range of the luminance of said first image is greater than the dynamic range of the luminance of said second image | |
CN108881915B (zh) | 基于dsc编码技术视频播放的装置和方法 | |
CN101611621A (zh) | 提供视频属性和视频数据的视频接收器 | |
US7382375B2 (en) | Video card with interchangeable connector module | |
US8217855B2 (en) | System for generating a plurality of display signals | |
US20070122045A1 (en) | System for scaling a picture unit from a first video resolution format to a second video resolution format | |
TW201431381A (zh) | 編碼輔助資料至視訊資料中之裝置及其方法 | |
US6642968B1 (en) | System and method for frame rate matching | |
CN117424972A (zh) | 一种将yuv编码数据以rgb编码格式输出的屏幕显示方法 | |
US6919897B1 (en) | System and method for pre-processing a video signal | |
CN108965764B (zh) | 图像处理方法及电子设备 | |
CN102025936A (zh) | 视频宽高比转换方法及装置 | |
WO2023138491A1 (zh) | 一种图像采集方法、图像显示方法及装置 | |
KR100933171B1 (ko) | 그래픽 디스플레이 기능을 구현한 비메모리 반도체 | |
FI110376B (fi) | Menetelmä tietokoneresoluutioisen kuvan siirtämiseksi MPEG2-järjestelmässä reaaliajassa | |
US6753874B1 (en) | System and method for packing and unpacking video data | |
CN117896571A (zh) | 一种自适应点屏方法及系统 | |
CN117560498A (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 |