AV1 Bitstream Decoding Process Specification--[8]: 语法结构语义-4

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf

  • 没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification
  • 摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器的比特流格式和解码过程。
  • 规范:此文档规定了开放媒体联盟(Alliance for Open Media)AV1比特流格式和解码过程。

语法结构语义(Syntax structures semantics)

帧头OBU语义(Frame header OBU semantics)

参考帧标记语义(Reference frame marking semantics)

  1. RefValid 是一个数组,它通过参考图片槽位编号进行索引。数组中的值为1表示对应的参考图片槽位有效,可以作为参考图片使用;值为0则表示对应的参考图片槽位无效,不能作为参考图片使用。
    • 注意:RefValid 仅在 frame_id_numbers_present_flag 等于1时用于定义有效的比特流。当帧距离过远,无法通过帧ID机制进行引用时,这些帧会被标记为无效。

帧大小语义(Frame size semantics)

  1. frame_width_minus_1 加一等于帧的宽度,以亮度样本为单位。
  2. frame_height_minus_1 加一等于帧的高度,以亮度样本为单位。
    • 比特流一致性的要求是 frame_width_minus_1 必须小于或等于 max_frame_width_minus_1。
    • 比特流一致性的要求是 frame_height_minus_1 必须小于或等于 max_frame_height_minus_1。
    • 如果 FrameIsIntra 等于 0(表示该帧可能使用帧间预测),还必须满足第6.8.6节中描述的带有引用语义的帧大小的要求。

渲染大小语义(Render size semantics)

  1. 渲染尺寸是向应用程序提供的一个提示,关于期望的显示尺寸。它对解码过程没有影响。
  2. render_and_frame_size_different 等于 0 表示渲染宽度和高度是从帧宽度和高度推断出来的。render_and_frame_size_different 等于 1 表示渲染宽度和高度是明确编码的。
    • 注意:即使渲染尺寸与帧尺寸完全匹配,也允许比特流在比特流中明确编码渲染尺寸。
  3. render_width_minus_1 加一等于帧的渲染宽度,以亮度样本为单位。render_height_minus_1 加一等于帧的渲染高度,以亮度样本为单位。

带有参考的帧大小语义(Frame size with refs semantics)

  1. 对于间隔帧,帧大小可以设置为等于参考帧的大小,或者可以显式发送。
  2. found_ref 等于 1 表示可以从参考帧 i 推断出帧尺寸,其中 i 是在 frame_size_with_refs`语法解析过程中的循环计数器。found_ref 等于 0 表示帧尺寸不能从参考帧 i 推断出来。
  3. 一旦为间隔帧计算出 FrameWidth 和 FrameHeight,对于所有 i 的值在 0…(REFS_PER_FRAME - 1) 的范围内,必须满足以下所有条件以符合比特流一致性要求:
    • 2 * FrameWidth >= RefUpscaledWidth[ref_frame_idx[i]]
    • 2 * FrameHeight >= RefFrameHeight[ref_frame_idx[i]]
    • FrameWidth <= 16 * RefUpscaledWidth[ref_frame_idx[i]]
    • FrameHeight <= 16 * RefFrameHeight[ref_frame_idx[i]]
    • 注意:即使间隔帧中的所有块都使用内插预测进行编码,这也是一个要求。

超分参数语义(Superres params semantics)

  1. use_superres 等于 0 表示不需要进行上采样。use_superres 等于 1 表示需要进行上采样。
  2. coded_denom 用于计算上采样的量。
  3. SuperresDenom 是一个分数的分母,它指定了上采样前后超块宽度之间的比例。这个分数的分子等于常数 SUPERRES_NUM。

计算图像大小语义(Compute image size semantics)

  1. MiCols 是帧中 4x4 块列的数量。
  2. MiRows 是帧中 4x4 块行的数量。

插值滤波器语义(Interpolation filter semantics)

  1. is_filter_switchable 等于 1 表示滤波器选择在块级别进行信号传输;is_filter_switchable 等于 0 表示滤波器选择在帧级别进行信号传输。
  2. interpolation_filter 指定用于执行间隔预测的滤波器选择:
    在这里插入图片描述

环路滤波器语义(Loop filter semantics)

  1. loop_filter_level 是一个包含循环滤波器强度值的数组。根据被过滤的图像平面和被过滤的边缘方向(垂直或水平),会使用数组中不同的循环滤波器强度值。
  2. loop_filter_sharpness 表示锐度水平。loop_filter_level 和 loop_filter_sharpness 共同决定何时对块边缘进行过滤,以及过滤可以改变样本值的程度。 循环滤波器的处理过程在第 7.14 节中描述。
  3. loop_filter_delta_enabled 等于 1 表示滤波器级别取决于用于预测块的模式和参考帧。loop_filter_delta_enabled 等于 0 表示滤波器级别不取决于模式和参考帧。
  4. loop_filter_delta_update 等于 1 表示存在额外的语法元素,这些元素指定哪些模式和参考帧增量需要更新。loop_filter_delta_update 等于 0 表示这些语法元素不存在。
  5. update_ref_delta 等于 1 表示存在语法元素 loop_filter_ref_delta;update_ref_delta 等于 0 表示这个语法元素不存在。
  6. loop_filter_ref_deltas 包含基于所选参考帧所需的滤波器级别调整。如果这个语法元素不存在,它保持其先前的值。
  7. update_mode_delta 等于 1 表示存在语法元素 loop_filter_mode_deltas;update_mode_delta 等于 0 表示这个语法元素不存在。
  8. loop_filter_mode_deltas 包含基于所选模式所需的滤波器级别调整。如果这个语法元素在帧中不存在,它保持其先前的值。
    ○ 注意:loop_filter_mode_deltas 和 loop_filter_ref_deltas 的先前值最初由 setup_past_independence 函数设置,并且可以由先前帧中编码的这些语法元素随后修改。

量化参数语义(Quantization params semantics)

  1. 残差通过解码系数指定,这些系数在应用逆变换之前会根据四个量化参数之一进行调整。选择哪个参数取决于平面(Y或UV)和系数位置(直流/交流系数)。去量化过程在第7.12节中指定。
  2. base_q_idx 表示基础帧的量化索引(qindex)。这用于Y交流系数,也是其他量化器的基准值。
  3. DeltaQYDc 表示相对于 base_q_idx 的Y直流量化器。
  4. diff_uv_delta 等于 1 表示U和V的增量量化器值分别编码。diff_uv_delta 等于 0 表示U和V的增量量化器值共享一个公共值。
  5. DeltaQUDc 表示相对于 base_q_idx 的U直流量化器。
  6. DeltaQUAc 表示相对于 base_q_idx 的U交流量化器。
  7. DeltaQVDc 表示相对于 base_q_idx 的V直流量化器。
  8. DeltaQVAc 表示相对于 base_q_idx 的V交流量化器。
  9. using_qmatrix 指定将使用量化器矩阵来计算量化器。
  10. qm_y 指定用于亮度平面解码的量化器矩阵中的级别。
  11. qm_u 指定用于色度U平面解码的量化器矩阵中的级别。
  12. qm_v 指定用于色度V平面解码的量化器矩阵中的级别。

Delta量化器语义(Delta quantizer semantics)

  1. delta_coded 指定是否存在 delta_q 语法元素。
  2. delta_q 指定了相对于基础量化指数(base_q_idx)的特定量化参数的偏移量。

段参数语义(Segmentation params semantics)

  1. AV1提供了一种将图像分割并在分段级别应用各种调整的方法。对于任何给定的帧,可以指定最多8个这样的分段。对于这些分段中的每一个,可以指定:
    • 量化器(绝对值或增量值)。
    • 循环滤波器强度(绝对值或增量值)。
    • 预测参考帧。
    • 块跳过模式,这意味着使用(0,0)运动矢量,并且不编码残差。
  2. 每个分段的这些数据值可以在帧级别单独更新。如果在给定帧中没有更新某个值,则保留上一帧的值。关键帧、仅内帧或其他需要从过去帧值独立的帧(例如,为了实现错误恢复)是这一规则的例外。在这些情况下,所有值都会按照setup_past_independence的语义进行重置。
  3. 分段隶属关系(分段图)以4x4块的分辨率存储。如果对块的分段隶属关系没有明确的更新,则它将从帧到帧地保持(直到通过调用setup_past_independence进行重置)。
    • SegIdPreSkip 等于1表示在读取跳过语法元素之前将读取分段ID。SegIdPreSkip 等于0表示首先读取跳过语法元素。
    • LastActiveSegId 表示具有某些启用功能的最高档分段ID。这用于解码分段ID时,只解码对应于已使用分段的选择。
    • segmentation_enabled 等于1表示该帧使用了分段工具;segmentation_enabled 等于0表示该帧不使用分段。
    • segmentation_update_map 等于1表示在解码该帧期间更新了分段图。segmentation_update_map 等于0表示使用上一帧的分段图。
    • segmentation_temporal_update 等于1表示分段图的更新是相对于现有分段图编码的。segmentation_temporal_update 等于0表示新分段图的编码不参考现有分段图。
    • segmentation_update_data 等于1表示即将为每个分段指定新的参数。segmentation_update_data 等于0表示分段参数应保持其现有值。
    • feature_enabled 等于0表示相应的功能未被使用,并且其值为0。feature_enabled 等于1表示已编码了特征值。
    • feature_value 指定了分段特征的特征数据。

瓦片信息语义(Tile info semantics)

  1. uniform_tile_spacing_flag 等于1表示帧上的瓦片均匀分布。(换句话说,除了右边和底部可能更小的瓦片外,所有瓦片大小相同。)uniform_tile_spacing_flag 等于0表示瓦片大小是编码的。
  2. increment_tile_cols_log2 用于计算 TileColsLog2。 TileColsLog2 指定帧横向瓦片数量的基数2对数。 TileCols 指定帧横向的瓦片数量。比特流一致性的要求是 TileCols 小于或等于 MAX_TILE_COLS。
  3. increment_tile_rows_log2 用于计算 TileRowsLog2。 TileRowsLog2 指定帧纵向瓦片数量的基数2对数。 注意:对于小尺寸的帧,由于瓦片大小向上取整到最大超块大小的倍数,实际瓦片数量可能小于期望数量。
  4. TileRows 指定帧纵向的瓦片数量。比特流一致性的要求是 TileRows 小于或等于 MAX_TILE_ROWS。
  5. tileWidthSb 用于指定每个瓦片的宽度,单位是超块。比特流一致性的要求是 tileWidthSb 小于 maxTileWidthSb。
  6. tileHeightSb 用于指定每个瓦片的高度,单位是超块。比特流一致性的要求是 tileWidthSb * tileHeightSb 小于 maxTileAreaSb。
    • 如果 uniform_tile_spacing_flag 等于0,比特流一致性的要求是当循环写入 MiColStarts 退出时,startSb 等于 sbCols。
    • 如果 uniform_tile_spacing_flag 等于0,比特流一致性的要求是当循环写入 MiRowStarts 退出时,startSb 等于 sbRows。
    • 注意:对 startSb 的要求确保了每个瓦片的大小加起来等于帧的全尺寸,当以超块为单位测量时。
  7. MiColStarts 是一个数组,指定了图像中每个瓦片的起始列(单位是4x4亮度样本)。
  8. MiRowStarts 是一个数组,指定了图像中每个瓦片的起始行(单位是4x4亮度样本)。
  9. width_in_sbs_minus_1 指定瓦片宽度减1的单位是超块。
  10. height_in_sbs_minus_1 指定瓦片高度减1的单位是超块。
  11. maxTileHeightSb 指定瓦片可以使用的最大高度(单位是超块)(为了避免瓦片面积过大)。
  12. context_update_tile_id 指定用于CDF更新的瓦片。比特流一致性的要求是 context_update_tile_id 小于 TileCols * TileRows。
  13. tile_size_bytes_minus_1 用于计算 TileSizeBytes。
  14. TileSizeBytes 指定编码每个瓦片大小所需的字节数。
    量化器索引 delta 参数语义(Quantizer index delta parameters semantics)
  15. delta_q_present 指定是否存在量化指数增量值。
  16. delta_q_res 指定应该应用于解码后的量化指数增量值的左移位数。
    环路滤波器 delta 参数语义(Loop filter delta parameters semantics)
  17. delta_lf_present 指定是否存在循环滤波器增量值。
  18. delta_lf_res 指定应该应用于解码后的循环滤波器增量值的左移位数。
  19. delta_lf_multi 等于1表示为水平亮度边缘、垂直亮度边缘、U边缘和V边缘分别发送不同的循环滤波器增量值。delta_lf_multi 等于0表示所有边缘使用相同的循环滤波器增量值。

全局运动参数语义(Global motion params semantics)

  1. is_global 指定是否为特定的参考帧存在全局运动参数。
  2. is_rot_zoom 指定特定的参考帧是否使用旋转和缩放全局运动。
  3. is_translation 指定特定的参考帧是否使用平移全局运动。

全局参数语义(Global param semantics)

  1. absBits 用于计算可用于 gm_params[ref][idx] 的值的范围。允许的值在 -(1 << absBits) 到 (1 << absBits) 的范围内。
  2. precBits 指定用于表示 gm_params[ref][idx] 的分数位数。所有全局运动参数都以 WARPEDMODEL_PREC_BITS 分数位数存储在模型中,但参数的编码精度较低。

解码子指数语义(Decode subexp semantics)

  1. subexp_final_bits 提供了在确定了适当的范围之后读取的最终比特。
  2. subexp_more_bits 等于 0 表示参数在范围 mk 到 mk+a-1 内。subexp_more_bits 等于 1 表示参数大于 mk+a-1。
  3. subexp_bits 指定了参数的值减去 mk。
    胶片颗粒参数语义(Film grain params semantics)
  4. apply_grain 等于 1 表示应该在该帧添加电影颗粒。apply_grain 等于 0 表示不应该添加电影颗粒。
  5. reset_grain_params() 是一个函数调用,表示应该将 film_grain_params 中读取的所有语法元素设置为 0。
  6. grain_seed 指定用于电影颗粒合成过程中伪随机数的起始值。
  7. update_grain 等于 1 表示应该发送一组新的参数。update_grain 等于 0 表示应该使用之前的参数集。
  8. film_grain_params_ref_idx 指示哪个参考帧包含该帧要使用的的电影颗粒参数。 比特流一致性的要求是 film_grain_params_ref_idx 等于 ref_frame_idx[j],其中 j 的值在 0 到 REFS_PER_FRAME - 1 的范围内。
    • 注意:这个要求意味着电影颗粒只能从当前帧作为参考帧的帧中预测。
  9. load_grain_params(idx) 是一个函数调用,表示应该将 film_grain_params 中读取的所有语法元素设置为由索引 idx 指定的内存区域中存储的值。
  10. tempGrainSeed 是一个临时变量,用于在调用 load_grain_params 时避免丢失 grain_seed 的值。当 update_grain 等于 0 时,应该使用之前的参数集,除了 grain_seed。
  11. num_y_points 指定亮度分量的分段线性缩放函数的点数。比特流一致性的要求是 num_y_points 小于或等于 14。
  12. point_y_value[i] 表示亮度分量的分段线性缩放函数的第 i 个点的 x(亮度值)坐标。这些值在 0…255 的尺度上信号化。(如果是10位视频,这些值对应于亮度值除以 4。如果是12位视频,这些值对应于亮度值除以 16。) 如果 i 大于 0,比特流一致性的要求是 point_y_value[i] 大于 point_y_value[i - 1](这确保了 x 坐标按递增顺序指定)。
  13. point_y_scaling[i] 表示亮度分量的分段线性缩放函数的第 i 个点的缩放(输出)值。
  14. chroma_scaling_from_luma 指定色度缩放是从亮度缩放推断出来的。
  15. num_cb_points 指定 cb 分量的分段线性缩放函数的点数。比特流一致性的要求是 num_cb_points 小于或等于 10。 注意:当 chroma_scaling_from_luma 等于 1 时,仍然允许 num_y_points 取值高达 14。这意味着色度缩放也需要支持高达 14 个点。
  16. point_cb_value[i] 表示 cb 分量的分段线性缩放函数的第 i 个点的 x 坐标。这些值在 0…255 的尺度上信号化。 如果 i 大于 0,比特流一致性的要求是 point_cb_value[i] 大于 point_cb_value[i - 1]。
  17. point_cb_scaling[i] 表示 cb 分量的分段线性缩放函数的第 i 个点的缩放(输出)值。
  18. num_cr_points 表示 cr 分量的分段线性缩放函数的点数。 比特流一致性的要求是 num_cr_points 小于或等于 10。 如果 subsampling_x 等于 1 并且 subsampling_y 等于 1 并且 num_cb_points 等于 0,比特流一致性的要求是 num_cr_points 等于 0。 如果 subsampling_x 等于 1 并且 subsampling_y 等于 1 并且 num_cb_points 不等于 0,比特流一致性的要求是 num_cr_points 不等于 0。
    • 注意:这些要求确保了对于 4:2:0 色度子采样,电影颗粒噪声将应用于两个色度分量,或者都不适用。对于 4:2:2 或 4:4:4 色度子采样没有限制。
  19. point_cr_value[i] 表示 cr 分量的分段线性缩放函数的第 i 个点的 x 坐标。这些值在 0…255 的尺度上信号化。 如果 i 大于 0,比特流一致性的要求是 point_cr_value[i] 大于 point_cr_value[i - 1]。
  20. point_cr_scaling[i] 表示 cr 分量的分段线性缩放函数的第 i 个点的缩放(输出)值。
  21. grain_scaling_minus_8 表示应用于色度分量值的 -8 偏移。grain_scaling_minus_8 可以取值 0…3,决定了电影颗粒标准差的量程和量化步长。
  22. ar_coeff_lag 指定亮度和色度的自回归系数的数量。
  23. ar_coeffs_y_plus_128[i] 指定用于 Y 平面的自回归系数。
  24. ar_coeffs_cb_plus_128[i] 指定用于 U 平面的自回归系数。
  25. ar_coeffs_cr_plus_128[i] 指定用于 V 平面的自回归系数。
  26. ar_coeff_shift_minus_6 指定自回归系数的范围。值 0、1、2 和 3 分别对应于自回归系数的范围 [-2, 2)、[-1, 1)、[-0.5, 0.5) 和 [-0.25, 0.25)。
  27. grain_scale_shift 指定在颗粒合成过程中高斯随机数应该被缩小多少。
  28. cb_mult 表示用于推导 cb 分量缩放函数输入索引的 cb 分量乘数。
  29. cb_luma_mult 表示用于推导 cb 分量缩放函数输入索引的平均亮度分量乘数。
  30. cb_offset 表示用于推导 cb 分量缩放函数输入索引的偏移量。
  31. cr_mult 表示用于推导 cr 分量缩放函数输入索引的 cr 分量乘数。
  32. cr_luma_mult 表示用于推导 cr 分量缩放函数输入索引的平均亮度分量乘数。
  33. cr_offset 表示用于推导 cr 分量缩放函数输入索引的偏移量。
  34. overlap_flag 等于 1 表示应该应用电影颗粒块之间的重叠。overlap_flag 等于 0 表示不应该应用电影颗粒块之间的重叠。
  35. clip_to_restricted_range 等于 1 表示在添加电影颗粒后应该将样本值限制在限制(工作室)范围内(有关工作室摆动的解释,请参阅 color_range 的语义)。clip_to_restricted_range 等于 0 表示在添加电影颗粒后应该将样本值限制在全范围内。

变换模式语义(TX mode semantics)

  1. tx_mode_select 用于计算 TxMode。
  2. TxMode 指定如何确定变换大小:
    在这里插入图片描述
    • 对于 tx_mode 等于 TX_MODE_LARGEST,逆变换将使用能够适应块内的最大变换大小。
    • 对于 tx_mode 等于 ONLY_4X4,逆变换将仅使用 4x4 的变换。
    • 对于 tx_mode 等于 TX_MODE_SELECT,每个块的变换大小将被明确指定。

跳过模式语义(skip mode semantics)

  1. SkipModeFrame[list] 指定在 skip_mode 等于 1 时用于复合预测的帧。
  2. skip_mode_present 等于 1 表示语法元素 skip_mode 将存在。skip_mode_present 等于 0 表示该帧不使用 skip_mode。
    • 注意:跳过模式尝试使用最近的前向和后向参考帧(根据 RefOrderHint 数组中的值进行测量)。如果未找到后向参考,则使用第二最近的前向参考。如果未找到前向参考,则禁用跳过模式。(前向预测是指使用被认为在当前帧之前输出的帧作为参考,后向预测是指使用尚未输出的帧作为参考。)

帧参考模式语义(Frame reference mode semantics)

  1. reference_select 等于 1 表示用于间隔块的模式信息包含语法元素 comp_mode,该元素指示是使用单一参考预测还是复合参考预测。reference_select 等于 0 表示所有间隔块将使用单一预测。

时间点信息语义(Temporal point info semantics)

  1. frame_presentation_time 指定了帧的呈现时间,这是从正在解码的运行点的最后一个随机访问点的移除时间开始,以时钟滴答(DispCT)计的。这个语法元素被信号化为一个固定长度的无符号整数,其长度(以比特为单位)由 frame_presentation_time_length_minus_1 + 1 决定。frame_presentation_time 是模 1 <<(frame_presentation_time_length_minus1+1) 计数器的余数。

帧OBU语义(Frame OBU semantics)

  1. 一个帧OBU由帧头OBU和瓦片组OBU组成,它们被打包进一个单一的OBU中。
    • 注意:目的是为常见用例提供一个更紧凑的编码方式,在这种用例中,帧头紧随瓦片组数据之后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148859.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础练习题‌100道电子版及源码文件

Python基础练习题‌&#xff0c;旨在帮助学习者巩固和提升Python编程技能。以下是一些精选的练习题目&#xff0c;包括但不限于&#xff1a; 基础语法练习‌&#xff1a;涉及变量定义、数据类型、运算符、条件语句、循环等基础语法结构的应用。例如&#xff0c;编写程序来处理数…

必备的Python操作系统的6个自动化脚本

引言 在日常工作中&#xff0c;我们经常需要处理大量的文件操作&#xff0c;如重命名、搜索、同步等。通过编写自动化脚本&#xff0c;不仅可以提高效率&#xff0c;还能减少错误。本文将介绍几个常用的文件操作脚本&#xff0c;包括文件重命名、搜索、同步、压缩、解压以及日…

ads执行推特RPA机器人脚本

这个流程是这样的 1、进入到关注区&#xff0c;在一大堆fedds里面找到主账号发布的动态&#xff08;主号在本地TXT文本中统计着&#xff09; 2、判断当前账号有没对主号进行评论过 3、随机发布评论内容再随机上传一张图片&#xff08;评论内容也是在本地TXT文本中统计着&…

索迪迈车载录像机设计方案

一、项目背景与概述 随着汽车产业的快速发展&#xff0c;车载监控及录像系统成为了现代车辆不可或缺的一部分。本项目针对车载录像机设计&#xff0c;致力于提升产品的稳定性、易用性及数据安全性。以下是详细的索迪迈车载录像机设计方案。 二、超级电容设计 车载录像机内置超…

Python 函数用法与底层分析

在编写函数时&#xff0c;函数体中的代码写法和我们前面讲述的基本一致&#xff0c;只是对代码实现了封装&#xff0c;并增加了函数调用、传递参数、返回计算结果等内容。 函数简介函数(function)的基本概念 1&#xff1a;一个程序由一个一个的任务组成&#xff1b;函数就是代…

VBA技术资料MF201:添加简单的右键菜单

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

守望稻田|碧桂园服务助力绿色大米推广,丰富万千家庭餐桌

在有着“中国优质稻米之乡”美誉的五常市&#xff0c;蓝天如洗&#xff0c;微风轻拂&#xff0c;金黄的稻浪在无垠的田野上起伏&#xff0c;丰收的气息随着稻香在这片肥沃的黑土地上弥漫开来。作为中国好粮油行动示范市&#xff0c;国家有机绿色稻香米核心产区&#xff0c;五常…

数据结构与算法 #时间复杂度 #空间复杂度

文章目录 前言 一、算法的复杂度 二、时间复杂度 三、空间复杂度 四、例题 1、例1&#xff1a;冒泡排序 2、例2&#xff1a; 3、例3&#xff1a; 4、例4: 二分查找 5、例5: 阶乘 6、例6: 斐波那契 五、常见算法复杂度 总结 前言 路漫漫其修远兮&#xff0c;吾将上下而求索&…

5个适合教师的AI工具,智能辅助,提升效率,让老师们工作更轻松!

随着人工智能技术的蓬勃发展&#xff0c;我们正步入一个由AI引领的变革时代&#xff0c;它不仅重塑了多个行业的面貌&#xff0c;更激发了我们对未来无限可能的想象。面对这一趋势&#xff0c;我们不应仅仅聚焦于其带来的挑战与冲击&#xff0c;而应积极拥抱变化&#xff0c;探…

猫咪掉毛背后的隐秘原因?除毛除臭宠物空气净化器双管齐下!

作为一个二胎家庭&#xff0c;两只猫咪&#xff0c;除了卖萌加倍之外&#xff0c;拉屎需要排队之外&#xff0c;家里最不缺就是毛了。作为一个名鼻炎患者真的很难顶。感受一下40度高温的养猫人&#xff0c;给掉毛怪疏毛浮毛飘飘&#xff0c;逃不过的饮水机&#xff0c;各个角落…

Deep Guided Learning for Fast Multi-ExposureImage Fusion

Abstract 我们提出了一种快速多重曝光图像融合&#xff08;MEF&#xff09;方法&#xff0c;即 MEF-Net&#xff0c;用于任意空间分辨率和曝光次数的静态图像序列。 我们首先将输入序列的低分辨率版本提供给全卷积网络以进行权重图预测。 然后&#xff0c;我们使用引导滤波器联…

HTML5 Video标签的属性、方法和事件汇总,以及常用视频插件推荐

&#x1f680; 个人简介&#xff1a;某大型国企资深软件研发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

【Unity3d Shader】毛玻璃效果

毛玻璃也叫​磨砂玻璃​:是用物理或化学方法处理过的一种表面粗糙不平整的半透明玻璃。 毛玻璃成像原理:毛玻璃表面不平整,光线通过毛玻璃被反射后向四面八方射出去(因为毛玻璃表面不是光滑的平面,使光产生了漫反射),折射到视网膜上已经是不完整的像,于是就看不清楚(…

关于 mybatis-plus-boot-starter 与 mybatis-spring-boot-starter 的错误

不是知道你是否 出现过这样的错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 经过各种度娘&#xff0c;无非就是让你检查三种情况 情况一&#xff1a;mapper.xml没有按照传统的maven架构进行放置 情况二&#xff1a;mybatis的配置信…

智能PPT行业赋能用户画像

智能PPT市场在巨大的需求前景下&#xff0c;已吸引一批不同类型的玩家投入参与竞争。从参与玩家类型来看&#xff0c;不乏各类与PPT创作有关的上下游企业逐步向智能PPT赛道转型进入&#xff0c;也包括顺应生成式AI技术热潮所推出的创业企业玩家。当前&#xff0c;智能PPT赛道发…

【网络协议栈】传输层的意义 和 UDP协议结构的解析(内含逻辑图解通俗易懂)

绪论​ “六年之约—jack”。本章是网络协议栈第二个主要模块 传输层&#xff0c;传输层在网络层中是非常重要的&#xff0c;他主要通过储存双方的端口记录数据的来源以及数据最终的去处&#xff0c;并且能一定的保证数据传输到达&#xff0c;以及快速高效的传递。本章主要讲到…

(附源码)基于django的电力工程作业现场物资管理系统的设计与实现-计算机毕设 22067

基于django的电力工程作业现场物资管理系统的设计与实现 摘 要 随着电力工程的快速发展&#xff0c;作业现场物资管理成为保障工程进度和质量的关键环节。本文旨在设计并实现一个基于Django框架的电力工程作业现场物资管理系统&#xff0c;以提高物资管理的效率和准确性。该系统…

约克VRF中央空调的优点不止一点点!

约克VRF中央空调的优点不止一点点&#xff01;      整体造型简约大方&#xff0c;隐入吊顶里刚刚好&#xff0c;高级又很有氛围感。      用约克小方App就能自由操控&#xff0c;忘记关空调再也不用跑回来关啦&#xff0c;使用起来hin方便&#xff0c;懒人大喜&#x…

MySQL如何实现并发控制?(上)

前言 最开始学习数据库的时候都会被问到一个问题&#xff1a;“数据库系统相比与文件系统最大的优势是什么&#xff1f;”。具体的优势有很多&#xff0c;其中一个很重要的部分是&#xff1a;数据库系统能够进行更好的并发访问控制。 那么&#xff0c;数据库系统到底是怎么进…

通过 Flink 的火焰图定位反压

在 Apache Flink 中&#xff0c;Web UI 提供了丰富的监控工具来帮助用户分析和解决作业性能问题&#xff0c;其中火焰图&#xff08;Flame Graph&#xff09;是用于分析反压问题的一个强有力的工具。反压可能是由于作业中某些算子处理速度过慢&#xff0c;或者资源耗尽导致的。…