nx_h264_mvgrid.nx
buildroot/runtime/nx_h264_mvgrid.nx
about
nx_h264_mvgrid.nx -- H.264 per-4x4 motion-vector grid + neighbour gathering (8.4.1.3).
Maintains three parallel grids over the whole picture (lbW x lbH 4x4 blocks):
gref[idx] : reference index of the block. -2 == NOT-YET-DECODED or out-of-picture (geometrically
unavailable -> triggers D-substitution for the C neighbour); -1 == DECODED but intra
(available, refIdxN=-1, mvN=0); >=0 == inter reference index. Distinguishing -2 from -1
matters only for sub-partition (8x8) neighbours whose top-right may be undecoded.
gmvx/gmvy : the block's L0 motion vector (quarter-pel units).
Gathering A(left)/B(top)/C(top-right; D=top-left substitutes when C unavailable) for a partition
then calling the median/directional predictor (nx_h264_mvp / _directional). Reusable by the P-frame
reconstructor. genealogy_id: itu_t_h264_sec8_4_1_3_mvgrid license_tier: ORIGINAL
dependencies 2 imports · 4 importers
imports: nx_syscalls.nxnx_h264_mvpred.nx
imported by: nx_h264_brecon.nxnx_h264_mv_recon_gate.nxnx_h264_pframe_recon.nxnx_h264_pmvfield.nx
structs
| none |
consts
| none |
functions
| 15 | func nx_mvg_get(gref: *i64, gmvx: *i64, gmvy: *i64, lbW: i64, lbH: i64, bx: i64, by: i64, out: *i64) -> i64 |
| 28 | func nx_mvg_fill(gref: *i64, gmvx: *i64, gmvy: *i64, lbW: i64, |
| 47 | func nx_mvg_part_mvp(gref: *i64, gmvx: *i64, gmvy: *i64, lbW: i64, lbH: i64, |
| 77 | func nx_mvg_skip_mv(gref: *i64, gmvx: *i64, gmvy: *i64, lbW: i64, lbH: i64, |