mirror of
https://github.com/ittiam-systems/libhevc.git
synced 2026-08-14 23:02:35 +07:00
Merge "Update ctb pu map for I slice" into lmp-dev am: d4cb5bc056
am: 2c01a8105a
Change-Id: I713638a47505ff1fcc01346c792390c20f0251cc
This commit is contained in:
commit
3598a31588
2 changed files with 44 additions and 16 deletions
|
|
@ -3111,15 +3111,7 @@ IHEVCD_ERROR_T ihevcd_parse_slice_data(codec_t *ps_codec)
|
|||
UWORD32 *pu4_nbr_pu_idx = ps_proc->pu4_pic_pu_idx_map;
|
||||
WORD32 nbr_pu_idx_strd = MAX_CTB_SIZE / MIN_PU_SIZE + 2;
|
||||
pu_t *ps_pu;
|
||||
|
||||
for(row = 0; row < ctb_size / MIN_PU_SIZE; row++)
|
||||
{
|
||||
for(col = 0; col < ctb_size / MIN_PU_SIZE; col++)
|
||||
{
|
||||
pu1_pic_pu_map_ctb[row * ctb_size / MIN_PU_SIZE + col] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
WORD32 ctb_size_in_min_pu = (ctb_size / MIN_PU_SIZE);
|
||||
|
||||
/* Neighbor PU idx update inside CTB */
|
||||
/* 1byte per 4x4. Indicates the PU idx that 4x4 block belongs to */
|
||||
|
|
@ -3170,6 +3162,27 @@ IHEVCD_ERROR_T ihevcd_parse_slice_data(codec_t *ps_codec)
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
/* Updating the CTB level PU idx (Used for collocated MV pred)*/
|
||||
{
|
||||
WORD32 ctb_row, ctb_col, index_pic_map, index_nbr_map;
|
||||
WORD32 first_pu_of_ctb;
|
||||
first_pu_of_ctb = pu4_nbr_pu_idx[1 + nbr_pu_idx_strd];
|
||||
|
||||
index_pic_map = 0 * ctb_size_in_min_pu + 0;
|
||||
index_nbr_map = (0 + 1) * nbr_pu_idx_strd + (0 + 1);
|
||||
|
||||
for(ctb_row = 0; ctb_row < ctb_size_in_min_pu; ctb_row++)
|
||||
{
|
||||
for(ctb_col = 0; ctb_col < ctb_size_in_min_pu; ctb_col++)
|
||||
{
|
||||
pu1_pic_pu_map_ctb[index_pic_map + ctb_col] = pu4_nbr_pu_idx[index_nbr_map + ctb_col]
|
||||
- first_pu_of_ctb;
|
||||
}
|
||||
index_pic_map += ctb_size_in_min_pu;
|
||||
index_nbr_map += nbr_pu_idx_strd;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************/
|
||||
|
|
|
|||
|
|
@ -702,14 +702,8 @@ IHEVCD_ERROR_T ihevcd_process(process_ctxt_t *ps_proc)
|
|||
WORD32 row, col;
|
||||
UWORD32 *pu4_nbr_pu_idx = ps_proc->pu4_pic_pu_idx_map;
|
||||
WORD32 nbr_pu_idx_strd = MAX_CTB_SIZE / MIN_PU_SIZE + 2;
|
||||
WORD32 ctb_size_in_min_pu = (ctb_size / MIN_PU_SIZE);
|
||||
|
||||
for(row = 0; row < ctb_size / MIN_PU_SIZE; row++)
|
||||
{
|
||||
for(col = 0; col < ctb_size / MIN_PU_SIZE; col++)
|
||||
{
|
||||
pu1_pic_pu_map_ctb[row * ctb_size / MIN_PU_SIZE + col] = 0;
|
||||
}
|
||||
}
|
||||
/* Neighbor PU idx update inside CTB */
|
||||
/* 1byte per 4x4. Indicates the PU idx that 4x4 block belongs to */
|
||||
|
||||
|
|
@ -758,6 +752,27 @@ IHEVCD_ERROR_T ihevcd_process(process_ctxt_t *ps_proc)
|
|||
pu4_nbr_pu_idx[(ctb_size_left / MIN_PU_SIZE) * nbr_pu_idx_strd + i + 1];
|
||||
|
||||
}
|
||||
|
||||
/* Updating the CTB level PU idx (Used for collocated MV pred)*/
|
||||
{
|
||||
WORD32 ctb_row, ctb_col, index_pic_map, index_nbr_map;
|
||||
WORD32 first_pu_of_ctb;
|
||||
first_pu_of_ctb = pu4_nbr_pu_idx[1 + nbr_pu_idx_strd];
|
||||
|
||||
index_pic_map = 0 * ctb_size_in_min_pu + 0;
|
||||
index_nbr_map = (0 + 1) * nbr_pu_idx_strd + (0 + 1);
|
||||
|
||||
for(ctb_row = 0; ctb_row < ctb_size_in_min_pu; ctb_row++)
|
||||
{
|
||||
for(ctb_col = 0; ctb_col < ctb_size_in_min_pu; ctb_col++)
|
||||
{
|
||||
pu1_pic_pu_map_ctb[index_pic_map + ctb_col] = pu4_nbr_pu_idx[index_nbr_map + ctb_col]
|
||||
- first_pu_of_ctb;
|
||||
}
|
||||
index_pic_map += ctb_size_in_min_pu;
|
||||
index_nbr_map += nbr_pu_idx_strd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue