if (lossless == 1) { shift = 2; inverse_walsh_hadamard_transform(shift); //7.13.2.10 } else { uint8_t n = log2w; uint8_t r = row_clamp_range; if (tx_type == DCT_DCT || tx_type == ADST_DCT || tx_type == FLIPADST_DCT || tx_type == H_DCT) { //invoke the inverse DCT process as specified in section 7.13.2.3 inverse_dct(n, r); //7.13.2.3 } else if (tx_type == DCT_ADST || tx_type == ADST_ADST || tx_type == DCT_FLIPADST || tx_type == FLIPADST_FLIPADST || tx_type == ADST_FLIPADST || tx_type == FLIPADST_ADST || tx_type == H_ADST || tx_type == H_FLIPADST) { // invoke the inverse ADST process as specified in section 7.13.2.9 inverse_adst(n, r); //7.13.2.9 } else { //7.13.2.15 inverse_identity_transform(n); } wait(); }
这段代码是一个条件语句,根据lossless
变量的值进行分支处理。如果lossless
等于1,则执行位移操作,并调用inverse_walsh_hadamard_transform()
函数。否则,根据tx_type
的值来确定执行不同的逆变换过程。
如果tx_type
等于DCT_DCT、ADST_DCT、FLIPADST_DCT或H_DCT,则调用inverse_dct()
函数执行逆离散余弦变换(inverse DCT)操作。
如果tx_type
等于DCT_ADST、ADST_ADST、DCT_FLIPADST、FLIPADST_FLIPADST、ADST_FLIPADST、FLIPADST_ADST、H_ADST或H_FLIPADST,则调用inverse_adst()
函数执行逆正弦变换(inverse ADST)操作。
否则,调用inverse_identity_transform()
函数执行逆恒等变换操作。
最后,调用wait()
函数进行等待。
if (lossless == 1) { shift = 2; inverse_walsh_hadamard_transform(shift); } else { uint8_t n = log2w; uint8_t r = row_clamp_range; if (tx_type == DCT_DCT || tx_type == ADST_DCT || tx_type == FLIPADST_DCT || tx_type == H_DCT) { inverse_dct(n, r); } else if (tx_type == DCT_ADST || tx_type == ADST_ADST || tx_type == DCT_FLIPADST || tx_type == FLIPADST_FLIPADST || tx_type == ADST_FLIPADST || tx_type == FLIPADST_ADST || tx_type == H_ADST || tx_type == H_FLIPADST) { inverse_adst(n, r); } else { inverse_identity_transform(n); } wait(); }
这段代码是一个条件语句块,根据lossless
变量的值进行分支处理。
如果lossless
等于1,则执行以下操作:
- 将
shift
赋值为2。 - 调用
inverse_walsh_hadamard_transform()
函数,并将shift
作为参数传递给该函数。
否则,执行以下操作:
- 声明并初始化两个
uint8_t
类型的变量n
和r
,分别赋值为log2w
和row_clamp_range
。 - 根据
tx_type
的值进行条件判断:- 如果
tx_type
等于DCT_DCT、ADST_DCT、FLIPADST_DCT或H_DCT,则调用inverse_dct()
函数,并将n
和r
作为参数传递给该函数。 - 如果
tx_type
等于DCT_ADST、ADST_ADST、DCT_FLIPADST、FLIPADST_FLIPADST、ADST_FLIPADST、FLIPADST_ADST、H_ADST或H_FLIPADST,则调用inverse_adst()
函数,并将n
和r
作为参数传递给该函数。 - 否则,调用
inverse_identity_transform()
函数,并将n
作为参数传递给该函数。
- 如果
- 调用
wait()
函数进行等待操作。
以上是根据代码逻辑理解的执行流程,具体函数的功能和实现细节可能需要查看函数的定义部分来确定。
root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/ /apollo/bazel-bin WARNING: Logging before InitGoogleLogging() is written to STDERR E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1 Pcd folders are as follows: /apollo/hdmap/pcd_apollo/ Resolution: 0.125 Dataset: /apollo/hdmap/pcd_apollo Dataset: /apollo/hdmap/pcd_apollo/ Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706 Failed to find match for field 'intensity'. Failed to find match for field 'timestamp'. E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0. F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false *** Check failure stack trace: *** scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/
根据提供的信息,执行脚本 scripts/msf_create_lossless_map.sh
时出现了错误。具体的错误信息如:
E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1
Pcd folders are as follows:
/apollo/hdmap/pcd_apollo/
Resolution: 0.125
Dataset: /apollo/hdmap/pcd_apollo
Dataset: /apollo/hdmap/pcd_apollo/
Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml.
Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml.
Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml.
E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706
Failed to find match for field 'intensity'.
Failed to find match for field 'timestamp'.
E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud
E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0.
F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false
*** Check failure stack trace: ***
scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single
这段错误信息表明在执行脚本时发生了一个检查失败的情况。错误的具体位置在 base_map_node_index.cc:101
。可能的原因包括:
数据不匹配:脚本中使用的数据可能存在不匹配的情况,例如字段名或者数据格式不正确。
数据文件缺失:脚本所需的某些数据文件可能不存在或者路径不正确。
依赖问题:脚本所依赖的某些组件或库可能缺失或者版本不兼容。
请检查脚本 scripts/msf_create_lossless_map.sh
中的相关代码,确保数据文件和依赖项的正确性。如果问题仍然存在,您可以提供更多的上下文信息,以便我们能够更好地帮助您解决问题。
相关推荐

















