YUV格式详解【全】

article/2025/9/23 5:23:18

YUV格式详解

  • YUV
    • YUV 采样
      • YUV 4:4:4
      • YUV 4:2:2
      • YUV 4:2:0
      • YUV 4:1:1
    • planar format
      • Packed (or Interleaved)
      • Planar
      • Semi-Planar
    • 关系图
  • YUV 与 RGB 相互转换
    • 计算公式推导
      • 1. 模拟 RGB转YUV的推导公式
      • 2. 数字 RGB to YUV
    • 1. 模拟YUV→模拟RGB
    • 2. 数字YUV→数字RGB
    • YUV与RGB的相互转换会损失图象质量
  • 计算
    • YUV计算文件大小
    • YUV计算帧数
    • sample map
    • 大小端序(字节序)
  • 一些常用格式
    • YUV格式关系
    • 常见的YUV格式存储排列方式

YUV

YUV是指亮度参量和色度参量分开表示的像素格式,其中“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
Y: 表示明亮度(Luminance或Luma)
U和V: 色度(Chrominance或者Chroma), 作用是描述影像色彩及饱和度,用于指定像素的颜色。

YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT.601 建议的一部分,其实是YUV经过缩放偏移的翻版。其中Y与YUV 中的Y含义一致,Cb,Cr 同样都指色彩,只是在表示方法上不同而已。在YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。YCbCr 有许多取样格式,如4∶4∶4,4∶2∶2,4∶1∶1 和4∶2∶0。

YUV 采样

色度通道的采样率可以低于亮度通道,而不会显著降低感知质量。

4:4:4 表示完全取样。
4:2:2 表示2:1的水平取样,垂直完全采样。
4:2:0 表示2:1的水平取样,垂直2:1采样。
4:1:1 表示4:1的水平取样,垂直完全采样。

最常用Y:UV记录的比重通常1:1或2:1,Video是以YUV4:2:0的方式记录,也就是我们俗称的I420,YUV4:2:0并不是说只有U(即Cb),V(即Cr)一定为0,而是指U:V互相援引,时见时隐,也就是说对于每一个行,只有一个U或者V分量,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0…以此类推。至于其他常见的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等。

为了方便举例说明,这里使用ffmpeg生成一个320x320分辨率的yuvj444p

# 用ffmpeg testsrc 生成一个完全取样的的YUV文件 yuvj444p
ffmpeg  -f lavfi -i testsrc -frames 10 -pix_fmt yuvj444p -s 320x320 yuvj444p_320x320.yuv
# 基于yuvj444p转换成422、420、411等
ffmpeg -pix_fmt yuvj444p -s 320x320 -i yuvj444p_320x320.yuv -pix_fmt yuvj420p yuvj420p_320x320.yuv
ffmpeg -pix_fmt yuvj444p -s 320x320 -i yuvj444p_320x320.yuv -pix_fmt yuv422p yuv422p_320x320.yuv
ffmpeg -pix_fmt yuvj444p -s 320x320 -i yuvj444p_320x320.yuv -pix_fmt yuvj411p yuvj411p_320x320.yuv

图像效果如下图所示
I444

YUV 4:4:4

完全取样,每个像素都有独立的Y/U/V值
YUV444
为了方便对比,我们挑画面下方横条渐变色块6x5个像素放大40倍,看像素的YUV值(其它采样也取相同位置)。
从如下图所示,可以看出相邻的像素点的Y/U/V值不相等也可以看出每个像素都有独立的U/V值
I444

YUV 4:2:2

每两个Y共用一对U/V值
YUV422
422采样,水平方向每两个像素共用一对U/V值,下如图绿色框(U channel)和蓝色框(V channel)标记的一个框在内存中只有一个值。
I422

YUV 4:2:0

每四个Y共用一对U/V值
YUV420
420采样,因为是相邻的4个像素共用一对U/V,所以会出现如下图所示,每四个相邻的像素就出现4个相同的UV值。
I420

YUV 4:1:1

与YUV 4:2:0类似,都是四个每四个Y共用一对U/V值,区别是4:1:1是水平方向的4个Y共享一对U/V,如下图所示,第1-4个Y使用同一对U/V值,第5-8个Y使用同一对U/V值,依次类推。。。
YUV411
这里就不截图举例了,由于411采样的不太常用的以致于一般工具都不支持播放,有了422的例子其实也好更多,411相当于在422的基础上再在水平方向下采样,即水平方向每连续4个像素共用一对UV。

planar format

Packed (or Interleaved)

将YUV三个分量的素数值放在同一个阵列中,存储为单个阵列宏像素
将每个像素点的Y/U/V连续交叉存储
以UYVY、YUYV为例,由两个像素的Y/U/V组成一个宏像素,依次排列

  1. UYVY

U0Y0V0Y1 U2Y2V2Y3 U4Y4V4Y5 U6Y6V6Y7 …
UYVY

  1. YUYV

Y0U0Y1V0 Y2U2Y3V2 Y4U4Y5V4 Y6U6Y7V6 …
YUYV

Planar

每个分量存储为单独的数组,最终图像是三个单独平面的整合
以I420为例Y/U/V排列如下:

width: 图像分辨率的宽
height: 分辨率高
n = width * height
m = width * height / 4
Y0Y1Y2Y3Y4Y5…Yn U0U1U2U3…Um V0V1V2V3…Vm

I420

Semi-Planar

介于Pakced和Planar之间,即Y分量为一个阵列,UV交叉存储
NV12

width: 图像分辨率的宽
height: 分辨率高
n = width * height
m = width * height / 4
Y0Y1Y2Y3Y4Y5…Yn U0V0U1V1U2V2U3V3…UmVm
NV12
Note:
格式的名称以“ p”结尾的一般都是planar格式,如在ffmpeg 中的yuvj420p格式
格式的名称以“ sp”结尾的一般都是semi-planar格式, 如

关系图

如下图,树的第四层只是列举部分并非全部,理论上树的第4层可以通过YUV的排列、位深、色彩范围(full range和limited range)等自由组合出来非常多的格式。

YUV
YUV444
YUV422
YUV420
YUV411
yuv444 Planar
yuv444 Semi-Planar
yuv444 Packed
yuv422 Planar
yuv422 Semi-Planar
yuv422 Packed
yuv420 Planar
yuv420 Semi-Planar
yuv420 Packed
yuv411 Planar
yuv411 Semi-Planar
yuv411 Packed
I444
NV24
NV42
AYUV
I422
NV16
NV61
YUYV
UYVY
I420
YV12
I010
NV12
NV21
P010
yuv410p
NV11
Y41P

YUV 与 RGB 相互转换

一般来讲,我们把YUV、Y‘UV、YCbCr, YPbPr包含在YUV颜色模型的范围内,其中Y都表示亮度,UV表示两个色度分量,但是具体的颜色模型的用途又各不相同,当然,他们与RGB的互转公式也就不相同。在电视系统发展的早期,YUV和Y’UV都是颜色信息的模拟信号编码形式,虽然Y和Y’都表示亮度,但是两种亮度的意义却天差地别,Y用来代指luminance,表示的是自然颜色的亮度,而Y‘代指luma,表示的是经过伽马压缩之后电信号的强度。在现在的计算机系统中,YUV一般用来代指YCbCr,用来表示文件的编码格式,用于数字视频的编码,而YPbPr颜色模型常常用在模拟分量视频中。所以YUV颜色模型到RGB颜色模型的转换,应该对应两种方式,分别是模拟YUV->模拟RGB、数字YUV->数字RGB。不过因为标清、高清、以及超清幅面,YUV转RGB的权重值各不相同,需要将模拟信号和数字信号再做一次幅面划分,就出现了6种转换公式。

Y、Cr、Cb信号的限制信号的限制
Y、Cr、Cb信号形式的数字编码可以表示比那些由R,、G、B信号相应范围支持的范围更大的信号值范围。正因为这样,作为电子图像生成或信号处理的结果,产生Y、CR、CB信号是可能的,尽管只是个别有效,但当转变为R、G、B时,将导致值超出范围。通过应用Y、CR、CB信号的限制,它将比在这些信号成为R、G、B形式之前一直等待来防止值超出范围更加方便和有效。限制还能在保持亮度和色调值的方法中应用,通过仅仅牺牲饱和度,来最大限度地降低主观缺陷。

计算公式推导

Kr + Kb +Kg = 1

以下参数由 ITU-R Recommendation BT.xxx 可得
BT.601:

Kr = 0.299 
Kg = 0.587 
Kb = 0.114

BT.709:

Kr = 0.2126 
Kg = 0.7152 
Kb = 0.0722

BT.2020:

Kr = 0.2627 
Kg = 0.678 
Kb = 0.0593

1. 模拟 RGB转YUV的推导公式

Kr + Kb +Kg = 1
Umax = Vmax = 0.5

Y = Kr * R + Kg * G + Kb * B
Pb = Umax * (B - Y) / (1 - Kb)
Pr = Vmax * (R - Y) / (1 - Kr)

2. 数字 RGB to YUV

Kr + Kb +Kg = 1
Umax = Vmax = 0.5

Y = 16 + 219 * (Kr * R + Kg * G + Kb * B) / 255
Cb = 128 + 224 * (Umax * (B - Y) / (1 - Kb)) / 255
Cr = 128 + 224 * (Vmax * (R - Y) / (1 - Kr)) / 255

1. 模拟YUV→模拟RGB

公式直接跳到下一节,以BT.601 为例,计算过程:

  1. 代入数值
    Y = 0.299 * R + 0.587 * G + 0.114 * B
    Pb = 0.5 * (B - Y) / (1 - 0.114)
    Pr = 0.5 * (R - Y) / (1 - 0.299)

  2. 化简
    Pb = 0.5 * (B - (0.299 * R + 0.587 * G + 0.114 * B)) / (1 - 0.114)
    = 0.5 * (B - (0.299 * R + 0.587 * G + 0.114 * B)) / 0.886
    = 0.5 * (B - 0.299 * R - 0.587 * G - 0.114 * B) / 0.886
    = 0.5 * (0.299 * R - 0.587 * G + 0.886 * B) / 0.886
    = (0.1495 * R - 0.2935 * G + 0.443 * B) / 0.886
    ≈ \approx 0.168 * R - 0.331 * G + 0.5 * B
    Pr = 0.5 * (R - (0.299 * R + 0.587 * G + 0.114 * B)) / (1 - 0.299)
    = 0.5 * (R - 0.299 * R - 0.587 * G - 0.114 * B) / 0.701
    = 0.5 * (0.701 * R - 0.587 * G - 0.114 * B) / 0.701
    = (0.3505 * R - 0.2935 * G - 0.057 * B) / 0.701
    ≈ \approx 0.5 * R - 0.419 * G - 0.081 * B

  1. BT.601(标清国际定义)
# RGB to YUV
Y = 0.299 * R + 0.587 * G + 0.114 * B   
Pb =-0.169 * R - 0.331 * G + 0.500 * B
Pr = 0.500 * R - 0.439 * G - 0.081 * B# YUV to RGB
R = Y + 1.402* Pr             
G = Y - 0.344 * Pb - 0.792* Pr        
B = Y + 1.772 * Pb
  1. BT.709(高清)
RGB to YUV
Y = 0.213 * R + 0.715 * G + 0.072 * B     
Pb =-0.115 * R - 0.385 * G + 0.500 * B
Pr = 0.500 * R - 0.454 * G - 0.046 * B# YUV to RGB
R = Y + 1.402* Cr            
G = Y - 0.344 * Cb - 0.792* Cr       
B = Y + 1.772 * Cb
  1. BT.2020(超高清)
# RGB to YUV
Y = 0.2627 * R + 0.678 * G + 0.0593 * B
Pb = -0.1396 * R - 0.3604 * G + 0.5 * B
Pr = 0.5 * R - 0.4598 * G - 0.0402 * B

2. 数字YUV→数字RGB

  1. BT.601
# RGB2YUV
Y = 16 + 0.257 * R + 0.504 * G+ 0.098 * B
Cb = 128 - 0.148 * R - 0.291 * G+ 0.439 * B
Cr = 128 + 0.439 * R - 0.368 * G - 0.071 * B# YUV2RGB
R = 1.164 *(Y - 16) + 1.596 *(Cr - 128)
G = 1.164 *(Y - 16) - 0.392 *(Cb - 128) - 0.812 *(Cr - 128)
B = 1.164 *(Y - 16) + 2.016 *(Cb - 128)
  1. BT.709
# RGB2YUV
Y = 16 + 0.183 * R + 0.614 * G + 0.062 * B
Cb = 128 - 0.101 * R - 0.339 * G+ 0.439 * B
Cr = 128 + 0.439 * R - 0.399 * G- 0.040 * B#YUV2RGB
R = 1.164 *(Y - 16) + 1.792 *(Cr - 128)
G = 1.164 *(Y - 16) - 0.213 *(Cb - 128) - 0.534 *(Cr - 128)
B = 1.164 *(Y - 16) + 2.114 *(Cb - 128)
  1. BT.2020
    Y = 16 + 219 * (0.2627 * R + 0.678 * G + 0.0593 * B) / 255
    ≈ \approx 16 + 0.226 * R + 0.582 * G + 0.051 * B

Cb = 128 + 224 * (0.5 * (B - Y) / 0.9407) / 255
Cr = 128 + 224 * (0.5 * (R - Y) / 0.7373) / 255
//TODO 有空再断续推导

YUV与RGB的相互转换会损失图象质量

不管是YUV转RGB还是RGB转YUV都会有图像质量的损失。
对于不同位深或不同采样率的转换质量损失都好理解,但对于相同位深相同采样率的转换图像质量损失就要从计算公式来理解了,如I444和RGB24都是8bit位深未经压缩处理全采样数据,无论是RGB转YUV,还是YUV转RGB都会有少量的图像质量的损失,从转换公式来看这个由于浮点计算带来的损失,可以说是微乎其微的肉眼基本上看不出来的损失。

用ffmpeg来做一验证,将yuvj444p转换成rgb24再转回yuvj444p,对比两个yuvj444p文件的差异

# 1. 用ffmpeg testsrc 生成一个完全取样的的YUV文件 yuvj444p
ffmpeg  -f lavfi -i testsrc -frames 10 -pix_fmt yuvj444p -s 320x320 yuvj444p_320x320.yuv# 2. 将生成的yuvj444p转换成rgb24
ffmpeg -pix_fmt yuvj444p -s 320x320 -i yuvj444p_320x320.yuv -pix_fmt rgb24 yuv2rgb_320x320.rgb# 3. 再将rgb24转成yuvj444p
ffmpeg -s 320x320 -pix_fmt rgb24 -i yuv2rgb_320x320.rgb -pix_fmt yuvj444p -s 320x320 rgb2yuvj444p_320x320.yuv

使用yuvj444p_320x320.yuv和rgb2yuvj444p_320x320.yuv这两个YUV对比,这两者应该是有差异的

播放YUV

ffplay -pix_fmt yuvj444p -s 320x320 rgb2yuvj444p_320x320.yuv
ffplay -pix_fmt yuvj444p -s 320x320 yuvj444p_320x320.yuv

如下图两个文件,肉眼看不出有差别
图像对比
但再对比文件差异时,如下图,可以看到红色高亮的少数的16进制数有差异,如第一个差异的数字原始的文件中是98,经过yuv2rgb再rgb2yuv后,变成了96
十六进制对比

计算

由于YUV格式是未经压缩并且只存储了Y/U/V三个通道的数据,播放或编码必须要知道分辨率和YUV具体的格式(如nv12/i420/yuvj420ple), 因此在YUV文件命名时建议名字包含YUV格式名称和分辨率信息
这里计算文件大小或者计算帧数中的采样率和位深可由YUV格式得到

YUV计算文件大小

已知YUV采样率、分辨率、和帧数
文件大小=宽 * 高 * 采样率 * 向上取整(位深/8) * 帧数

file size(byte) = width * height * rate * Ceil(bitdepth/8) * frames

以最常用的nv12/i420等8bit位深的420为例

文件大小 = 宽 * 高 * 1.5 * 帧数

YUV计算帧数

YUV帧数的计算和文件大小的计算类似
要求已知文件大小、采样率、分辨率
YUV帧数=文件大小/(宽 * 高 * 采样率 * 向上取整(位深/8))

YUV frames = file size(byte) / (width * height * rate * Ceil(bitdepth/8))

sample map

samplerate
4:4:43
4:2:22
4:2:01.5
4:1:11.5

大小端序(字节序)

当位深超过8bit时存在大小端模式的情况

big-edian(大端序): 低地址存放高位
little-endian(小端序): 低地址存放低位
格式名称以le为小端序,格式名称以be为小端序
相同名称只是后缀不一样的两种格式YUV排列是完全一样的, 如,yuv420p10le与yuv420p10be

一些常用格式

YUV格式关系

YUV格式名称比较多在不同的地方不同的名称有可能代表的是同一种格式,如在ffmpeg中的yuyv422与gstreamer 中的yuy2,以及其它不它的格式名称YUY2/YUYV/YUNV, 都是代表同一种YUV格式

ffmpeg pix_fmtgstreamer formatDuplicate formatsnumber of componentsBits per pixelremark
yuvj420pi420IYUV/YU12312full range
yuv420p-312limited range , 排列方式与yuvj420p完全一致,只是像素颜色范围是[16,235], 16表示黑色,235表示白色; UV范围[16,240]
nv12nv12312-
nv21nv21312-
yuyv422yuy2YUY2/YUYV/YUNV316YUYV 4:2:2
uyvy422uyvyUYVY/IUYV/HDYC/ UYNV/Y422316UYVY 4:2:2
yuv420p10lei420-10le31510 bit yuv
p010lep010-10le31510 bit yuv
yv12-312YV12 (3-planar) ——These formats are identical to YU12 except that the U and V plane order is reversed.

常见的YUV格式存储排列方式

Define:
s = width * height
n = width * height // 4
m = width * height // 2

  1. I420/IYUV/YU12: yuv420 planar 的一种, 排列方式: y1y2y3…ysu1u2u3…unv1v2v3…vn
  2. nv12: 8bit YUV420 Semi-Planar的一种格式, 排列方式: y1y2y3…ysu1v1u2v2u3v3…unvn
  3. nv21: 8bit YUV420 Semi-Planar的一种格式, 排列方式: y1y2y3…ysv1u1v2u2…vnun
  4. i420-10le: 10bit YUV420 Planar的一种格式, 排列方式与i420一样, 只是每个值都用10bit低字节序来存储
  5. p010-10le: 10bit YUV420 Semi-Planar的一种格式, 排列方式与nv12一样, 只是每个值都用高10bit低字节序来存储
  6. YUY2/YUYV/YUNV: 8bit YUV 4:2:2格式, 排列方式: y1u1y2v1 y3u2y4v2 y5u3y6v3…yn-1umynvm
  7. UYVY/IUYV/HDYC/UYNV/Y422: 8bit YUV 4:2:2格式, 排列方式: u1y1v1Y2 u2y3v2y4 u3y5v3y6…umyn-1vmyn
  8. yv12: YUV420 Planar的一种,UV的顺序与i420相反, 排列方式: y1y2y3y…ynv1v2v3…vnu1u2u3…un
  9. YUV422P/I422: y1y2y3…ysu1u2u3…umv1v2v3…vm
  10. nv16: yuv422 Semi-Planar的一种: y1y2y3…ys u1v1u2v2u3v3…umvm
  11. nv61: 与nv16类似,只是u/v的位置互换(V前U后)
  12. yv16: yuv422 Planar的一种: y1y2y3…ysu1u2u3…umv1v2v3…vm
  13. yuvj444p: Planar的一种: y1y2y3y…ys u1u2u3…us v1v2v3…vs

其它4:1:1采样的格式一般不太常见

  1. Y41P: 是一种4:1:1packed格式,其中U和V每四个像素水平采样一次。每个宏像素在三个字节中包含8个像素,并具有以下字节布局:U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y7
  2. Y41T与Y41P相同,除了每个Y样本的最低有效位指定色度键(0 =透明,1 =不透明)。
  3. AI44是一种已标准化的YUV格式,每个样本8位。每个样本在4个最高有效位(MSB)中包含一个索引,在4个最低有效位(LSB)中包含一个alpha值。索引引用YUV调色板条目的数组,必须在该格式的媒体类型中定义。此格式主要用于子图片图像。

参考:
[1]: https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering
[2]:https://www.fourcc.org/yuv.php
[3]: https://baike.baidu.com/item/YUV/3430784?fr=aladdin
[4]: https://www.itu.int/rec/R-REC-BT.601
[5]: https://www.itu.int/rec/R-REC-BT.709
[6]: https://www.itu.int/rec/R-REC-BT.2020


http://chatgpt.dhexx.cn/article/MnMBumKC.shtml

相关文章

LaTeX Error: Unknown option quiet for package fontspec

编译方式错误,fontspec是基于Xe和Le开发的,所以不能使用pdf**进行编译

Latex Error:Two \documentclass or \documentstyle commands. \documentclass{

今天尝试在latex中使用markdown语法时出现了如下错误: Two \documentclass or \documentstyle commands. \documentclass{ 在网上查找了好多地方,都说是因为用了两次\documentclass命令导致的,可是我能确定我只用了一次\documentclass命令,最后我终于找到了问题所在。因为我的…

介绍Latex神器——Overleaf的方法

向大家介绍2个神网站,一个是腾讯在线文档,一个是overleaf 腾讯在线文档就不多介绍了,可以直接百度网址并使用,它有2个亮点,1.特别简洁,高效。2.可以多人在线,共同编辑同一个文档。(在…

LaTeX:斜线表头的表格制作

参考 LaTeX:斜线表头的表格制作 - 云社区 - 腾讯云 需求:正规表格的左上角"第一个单元是表头",一般都是用"斜线分区"的!本文介绍其实现方法:不仅适用在表头,表中任何一个单元位置都适…

latex报错 Misplaced \noalign.

表格最后一行少了双斜杠\\

3、显示锁和AQS

3、显示锁和AQS 原子操作CAS atom(不可分割) 什么是原子操作?如何实现原子操作? synchronized 基于阻塞的锁机制 可以实现,但会引发以下问题 1、被阻塞的线程优先级很高 2、拿到锁的线程一直不释放锁怎么办&#x…

LaTex绘制跨行跨列的三线表

有时表格某单元格需要横跨几列,我们可以使用 \multicolumn 命令, 同时使用 booktabs 宏包的 \cmidrule 命令来画横跨几列的横线。它们的语 法如下: \begin{table }[ htbp]\centering \begin{tabular }{ lll}\toprule & \multicolumn{2}{…

Springer latex期刊模板使用的坑

1.之前都是用这个编译,Springer 期刊不是这个,是pdflatex 解决方案:可以上面选项换成pdflatex也可以加这命令\documentclass[pdflatex,sn-basic]{sn-jnl}(注意documentclass只能出现一次,所以pdflatex可以加在原有的d…

LaTeX--5--一个文档的基本结构/导言区/标题_作者_日期

本期的主要内容有: 一个 LaTeX 文档的基本结构导言区常用排版命令标题、作者与日期字体与字号特殊字符的输入一些常用排版效果 另外我们还会穿插介绍一些 LaTeX 的基本概念,在文中加粗表示并附上英文。 1. 一个 LaTeX 文档的基本结构 承接上一期&…

Latex表格大小调整常见问题汇总

列宽调整 若要调整每列的宽度到指定数值&#xff0c;可以将代码中的 \begin{tabular}{c|ccc}改为 \begin{tabular}{p{xxx}|ccc}其中花括号里面填写宽度数值&#xff0c;如5pt&#xff0c;10mm等。如果需要该列居中&#xff0c;可以写作 \begin{tabular}{p{xxx}<{\center…

Elsevier模板LaTex中编译时出现“! Undefined control sequence.”

问题描述(以下内容仅是我遇到的问题&#xff0c;不一定具有普适性) 使用overleaf模板库里的ElsevierLaTex模板上传到系统后&#xff0c;系统并没有正确的生成pdf&#xff0c;而是生成了报错信息。 后来改用了Elsevier官网的latex模板&#xff0c;但是上传之后还是生成报错信息…

latax中插入表格

下面这篇博客写的很好&#xff0c;这里转载了过来。另外需要补充几点&#xff1a; 1.绘制表格的简单方法 latax绘制复杂表非常的麻烦&#xff0c;故一般采取其他方法。 可以使用Excel2LaTeX插件 https://www.latexstudio.net/archives/6992.html &#xff08;需要安装ms off…

Latex的常见问题及解决方案

制作斜线表头 \usepackage{diagbox} \begin{tabular}{|l|ccc|} \hline \diagbox{Time}{Room}{Day} & Mon & Tue & Wed \\ \hline Morning & used & used & \\ Afternoon & & used & used \\ \hline \end{tabular} 效果如下: 空格表示 …

LaTex学习笔记之命令使用

LaTex学习笔记之命令使用 概要vscode跳转写作环境宏包的使用命令的使用常用命令章节层次列表环境字体字号行内和行间公式分式、根式、矩阵表格的使用插图参考文献的插入 概要 本文章是针对已安装好Tex环境&#xff0c;并已安装好编辑器。这里使用TeXstudio进行编辑。 vscode跳…

LaTeX心得分享之插入表格(下)

接上篇~今天我们主要说&#xff1a; 单元格的合并 单元格的拆分 一、单元格的合并 1、\multicolumn命令 。通常用于合并一行种几个不同列的单元格&#xff0c;适合排版跨列的标头。其基本语法格式&#xff1a; \multicolumn{项数}{新列格式}{名称} 项数&#xff1a;表格的…

LaTeX制表命令使用教程(简要例子+清晰代码)(论文排版)

1.基本格式 \documentclass{article}\begin{document}\begin{tabular}{cc}%一个c表示有一列&#xff0c;格式为居中显示(center) (1,1)&(1,2)\\%第一行第一列和第二列 中间用&连接 (2,1)&(2,2)\\%第二行第一列和第二列 中间用&连接 \end{tabular}\end{docum…

语义分割 FastFcn ~ JPU单元

Paper: FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation 贡献&#xff1a; 提出JPU替代 扩张卷积计算时间和内存消耗减少3倍且有更好的表现在一些公开数据集上 start of the art 文章以resnet101作为backbone, deeplab系列在resnet上去掉…

JDNI

JNDI是为了一个最最核心的问题&#xff1a;是为了解耦&#xff0c;是为了开发出更加可维护、可扩展的系统JNDI和JDBC起的作用类似&#xff1a;JDBC&#xff08;Java Data Base Connectivity,java数据库连接&#xff09;是一种用于执行SQL语句的Java API&#xff0c;可以为多种关…

JGit

JGit 参考&#xff1a;https://yonge812.iteye.com/blog/1687480 概念&#xff1a; 就是用java代码实现git的命令行操作 JGit API&#xff1a; https://download.eclipse.org/jgit/site/5.2.1.201812262042-r/apidocs/index.html 打开git仓库 Git gitGit.open&#xff…

java pom_Jpom

软件简介 Jpom是一款简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。 你为什么需要Jpom Java 项目在实际部署运维&#xff0c;通用的方法是登录服务器上传新的项目包&#xff0c;执行相应命令管理&#xff0c;如果管理多个项目则重复操作上述步骤 此方法不足的是…