ComputeVectorPQCode接口 API定义 int ComputeVectorPQCode(VectorArrayData *baseData, const DiskPQParams *params, uint8_t *pqCode); 功能描述 使用填充好PQ数据的params,对baseData中的底库数据进行量化,并将量化数据写入pqCode指向的缓存区中。 输入 VectorArrayData *baseData:指向填充好底库数据的VectorArrayData实例的指针。不能为空指针。用户可以根据自身内存的限制,在外层决定baseData中底库数据的大小。 const DiskPQParams *params:指向填充好PQ参数和训练好的PQ数据的DiskPQParams实例的指针。不能为空指针。 输出 uint8_t *pqCode:接收返回的压缩好的底库向量的指针。不能为空指针。 返回值 int:返回值为0时表示流程正常;返回值为-1时表示流程异常,且会将异常日志信息打印到cerr中。 约束说明 baseData数据填充要求如下:items指向的数据大小为length * dim * sizeof(float)字节。注意此处与ComputePQTable接口不同, 无需在每条数据前填充代替metadata的数据。 params成员变量填充要求如下:dim除满足上述的范围限制要求之外,还需确保与sample中对应的dim字段保持一致。pqTable必须指向内存大小为dim * 256 * sizeof(float)字节数的码本数据。用户需要保证指向的内存大小符合,否则有段错误风险。offsets必须指向内存大小为(pqChunks + 1) * sizeof(uint32_t)字节数的offsets数据。用户需要保证指向的内存大小符合,否则有段错误风险。对tablesTransposed填充值无要求。centroids必须指向内存大小为dim * sizeof(float)字节数的centroids数据。用户需要保证指向的内存大小符合,否则有段错误风险。 用户需保证pqCode指向的空间大小至少有length * pqChunks字节数。其中,length为VectorArrayData参数;pqChunks为DiskPQParams参数。 父主题: DiskPQ