实测好用,可以直接给出 ms 级别的时间
#include<iostream>
#include<stdio.h>
#include<sys/timeb.h>
void read_rgb_from_bin(std::string file_path, int w, int h, float * im){
FILE *fp = fopen(file_path.c_str(), "rb");
int size = (int)(w * h * 3);
fwrite(im, 1, size, fp);
fclose(fp);
}
void write_rgb_to_bin(std::string file_path, int w, int h, float * im){
FILE *fp = fopen(file_path.c_str(), "wb");
int size = (int)(w * h * 3);
fwrite(im, 1, size, fp);
fclose(fp);
}
void read_nv12_from_bin(std::string file_path, int w, int h, float * im){
FILE *fp = fopen(file_path.c_str(), "rb");
int size = (int)(w * h * 3 / 2.0);
fread(im, 1, size, fp);
fclose(fp);
}
void write_nv12_to_bin(std::string file_path, int w, int h, float * im){
FILE *fp = fopen(file_path.c_str(), "wb");
int size = (int)(w * h * 3 / 2.0);
fwrite(im, 1, size, fp);
fclose(fp);
}
int main()
{
std::string pic_in_path = "/home/luxy/pic_in/3840_2160_rgb.bin";
int pic_in_width = 3840;
int pic_in_height = 2160;
float *pic_out = new float[3840*2160*3];
struct timeb api_start;
struct timeb api_end;
long cost_time ;
/* 获取当前时间 */
ftime(&api_start);
read_rgb_from_bin(pic_in_path, pic_in_width, pic_in_height, pic_out);
/* 获取当前时间 */
ftime(&api_end);
cost_time =(api_end.time-api_start.time)*1000+(api_end.millitm-api_start.millitm); /* 计算毫秒级的时间 */
std::cout << "API consumption is " << cost_time << "ms" << std::endl;
delete[] pic_out;
return 0;
}