Skip to content

Commit ab23599

Browse files
kpchoineergil
andauthored
Support 4444-10 Profile (#118)
* added profile number Signed-off-by: kp5.choi@samsung.com <kp5.choi@samsung.com> * Print msg for 400 and 4444 Signed-off-by: Neeraj Gadgil <neergil@gmail.com> * Use cfmt locally using OAPV_CS_GET_FORMAT() Signed-off-by: Neeraj Gadgil <neergil@gmail.com> * Fixed codec_depth for OAPV_PROFILE_444_10 case Signed-off-by: Neeraj Gadgil <neergil@gmail.com> --------- Signed-off-by: kp5.choi@samsung.com <kp5.choi@samsung.com> Signed-off-by: Neeraj Gadgil <neergil@gmail.com> Co-authored-by: Neeraj Gadgil <neergil@gmail.com>
1 parent 2686342 commit ab23599

File tree

3 files changed

+48
-17
lines changed

3 files changed

+48
-17
lines changed

app/oapv_app_enc.c

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ static void print_stat_au(oapve_stat_t *stat, int au_cnt, oapve_param_t *param,
531531

532532
static void print_stat_frms(oapve_stat_t *stat, oapv_frms_t *ifrms, oapv_frms_t *rfrms, double psnr_avg[MAX_NUM_FRMS][MAX_NUM_CC])
533533
{
534-
int i, j;
534+
int i, j, cfmt;
535535
oapv_frm_info_t *finfo;
536536
double psnr[MAX_NUM_FRMS][MAX_NUM_CC] = { 0 };
537537

@@ -563,10 +563,22 @@ static void print_stat_frms(oapve_stat_t *stat, oapv_frms_t *ifrms, oapv_frms_t
563563
: finfo[i].pbu_type == OAPV_PBU_TYPE_DEPTH_FRAME ? "DEPTH"
564564
: finfo[i].pbu_type == OAPV_PBU_TYPE_ALPHA_FRAME ? "ALPHA"
565565
: "UNKNOWN";
566-
// clang-format on
567566

568-
logv3("- FRM %-2d GID %-5d %-11s %9d-bytes %8.4fdB %8.4fdB %8.4fdB\n",
569-
i, finfo[i].group_id, str_frm_type, stat->frm_size[i], psnr[i][0], psnr[i][1], psnr[i][2]);
567+
cfmt = OAPV_CS_GET_FORMAT(finfo[i].cs);
568+
569+
// clang-format on
570+
if (cfmt == OAPV_CF_YCBCR400) { // 1 channel
571+
logv3("- FRM %-2d GID %-5d %-11s %9d-bytes %8.4fdB\n",
572+
i, finfo[i].group_id, str_frm_type, stat->frm_size[i], psnr[i][0]);
573+
}
574+
else if (cfmt == OAPV_CF_YCBCR4444) { // 4 channels
575+
logv3("- FRM %-2d GID %-5d %-11s %9d-bytes %8.4fdB %8.4fdB %8.4fdB %8.4fdB\n",
576+
i, finfo[i].group_id, str_frm_type, stat->frm_size[i], psnr[i][0], psnr[i][1], psnr[i][2], psnr[i][3]);
577+
}
578+
else { // 3 channels
579+
logv3("- FRM %-2d GID %-5d %-11s %9d-bytes %8.4fdB %8.4fdB %8.4fdB\n",
580+
i, finfo[i].group_id, str_frm_type, stat->frm_size[i], psnr[i][0], psnr[i][1], psnr[i][2]);
581+
}
570582
}
571583
fflush(stdout);
572584
fflush(stderr);
@@ -875,8 +887,12 @@ int main(int argc, const char **argv)
875887
memset(&ifrms, 0, sizeof(oapv_frm_t));
876888
memset(&rfrms, 0, sizeof(oapv_frm_t));
877889

878-
int codec_depth = (param->profile_idc == OAPV_PROFILE_422_10 || param->profile_idc == OAPV_PROFILE_400_10) ? 10 :
879-
param->profile_idc == OAPV_PROFILE_422_12 ? 12 : 0;
890+
int codec_depth = (param->profile_idc == OAPV_PROFILE_422_10 ||
891+
param->profile_idc == OAPV_PROFILE_400_10 ||
892+
param->profile_idc == OAPV_PROFILE_444_10 ||
893+
param->profile_idc == OAPV_PROFILE_4444_10) ? 10 :
894+
(param->profile_idc == OAPV_PROFILE_422_12) ? 12 : 0;
895+
880896
if (codec_depth == 0) {
881897
logerr("ERR: invalid profile\n");
882898
ret = -1;
@@ -1016,29 +1032,40 @@ int main(int argc, const char **argv)
10161032

10171033
logv2_line("Summary");
10181034
psnr_avg[FRM_IDX][0] /= au_cnt;
1019-
psnr_avg[FRM_IDX][1] /= au_cnt;
1020-
psnr_avg[FRM_IDX][2] /= au_cnt;
1021-
if(cfmt == OAPV_CF_YCBCR4444) {
1022-
psnr_avg[FRM_IDX][3] /= au_cnt;
1035+
if (cfmt != OAPV_CF_YCBCR400) {
1036+
psnr_avg[FRM_IDX][1] /= au_cnt;
1037+
psnr_avg[FRM_IDX][2] /= au_cnt;
1038+
if (cfmt == OAPV_CF_YCBCR4444) {
1039+
psnr_avg[FRM_IDX][3] /= au_cnt;
1040+
}
10231041
}
10241042

10251043
logv3(" PSNR Y(dB) : %-5.4f\n", psnr_avg[FRM_IDX][0]);
1026-
logv3(" PSNR U(dB) : %-5.4f\n", psnr_avg[FRM_IDX][1]);
1027-
logv3(" PSNR V(dB) : %-5.4f\n", psnr_avg[FRM_IDX][2]);
1028-
if(cfmt == OAPV_CF_YCBCR4444) {
1029-
logv3(" PSNR T(dB) : %-5.4f\n", psnr_avg[FRM_IDX][3]);
1044+
if (cfmt != OAPV_CF_YCBCR400) {
1045+
logv3(" PSNR U(dB) : %-5.4f\n", psnr_avg[FRM_IDX][1]);
1046+
logv3(" PSNR V(dB) : %-5.4f\n", psnr_avg[FRM_IDX][2]);
1047+
if (cfmt == OAPV_CF_YCBCR4444) {
1048+
logv3(" PSNR T(dB) : %-5.4f\n", psnr_avg[FRM_IDX][3]);
1049+
}
10301050
}
10311051
logv3(" Total bits(bits) : %.0f\n", bitrate_tot * 8);
10321052
bitrate_tot *= (((float)param->fps_num / param->fps_den) * 8);
10331053
bitrate_tot /= au_cnt;
10341054
bitrate_tot /= 1000;
10351055

1036-
logv3(" -----------------: bitrate(kbps)\tPSNR-Y\tPSNR-U\tPSNR-V\n");
1037-
if(cfmt == OAPV_CF_YCBCR4444) {
1056+
1057+
if (cfmt == OAPV_CF_YCBCR400) { // 1-channel
1058+
logv3(" -----------------: bitrate(kbps)\tPSNR-Y\n");
1059+
logv3(" Summary : %-4.4f\t%-5.4f\n",
1060+
bitrate_tot, psnr_avg[FRM_IDX][0]);
1061+
}
1062+
else if(cfmt == OAPV_CF_YCBCR4444) { // 4-channel
1063+
logv3(" -----------------: bitrate(kbps)\tPSNR-Y\tPSNR-U\tPSNR-V\tPSNR-T\n");
10381064
logv3(" Summary : %-4.4f\t%-5.4f\t%-5.4f\t%-5.4f\t%-5.4f\n",
10391065
bitrate_tot, psnr_avg[FRM_IDX][0], psnr_avg[FRM_IDX][1], psnr_avg[FRM_IDX][2], psnr_avg[FRM_IDX][3]);
10401066
}
1041-
else {
1067+
else { // 3-channel
1068+
logv3(" -----------------: bitrate(kbps)\tPSNR-Y\tPSNR-U\tPSNR-V\n");
10421069
logv3(" Summary : %-5.4f\t%-5.4f\t%-5.4f\t%-5.4f\n",
10431070
bitrate_tot, psnr_avg[FRM_IDX][0], psnr_avg[FRM_IDX][1], psnr_avg[FRM_IDX][2]);
10441071
}

inc/oapv.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ extern "C" {
236236
#define OAPV_PROFILE_422_10 (33)
237237
#define OAPV_PROFILE_422_12 (44)
238238
#define OAPV_PROFILE_444_10 (55)
239+
#define OAPV_PROFILE_4444_10 (77)
239240
#define OAPV_PROFILE_400_10 (99)
240241

241242
/*****************************************************************************
@@ -444,6 +445,7 @@ static const oapv_dict_str_int_t oapv_param_opts_profile[] = {
444445
{"422-10", OAPV_PROFILE_422_10},
445446
{"422-12", OAPV_PROFILE_422_12},
446447
{"444-10", OAPV_PROFILE_444_10},
448+
{"4444-10", OAPV_PROFILE_4444_10},
447449
{"400-10", OAPV_PROFILE_400_10},
448450
{"", 0} // termination
449451
};

src/oapv.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,8 @@ static int enc_profile_spec[][5] = {
963963
// {profile-idc, cfi-min, cfi-max, bit-depth-min, bit-depth-max}
964964
{OAPV_PROFILE_422_10, 2, 2, 10, 10},
965965
{OAPV_PROFILE_422_12, 2, 2, 10, 12},
966+
{OAPV_PROFILE_444_10, 2, 3, 10, 10},
967+
{OAPV_PROFILE_4444_10, 2, 4, 10, 10},
966968
{OAPV_PROFILE_400_10, 0, 0, 10, 10},
967969
{0, 0, 0, 0, 0} // termination
968970
};

0 commit comments

Comments
 (0)