nx_h264_hadamard.nx
buildroot/runtime/nx_h264_hadamard.nx
about
nx_h264_hadamard.nx -- 4x4 inverse Hadamard for the Intra_16x16 luma DC block
(spec 8.5.10). The 16 luma DC coefficients are Hadamard-transformed (then
scaled by the caller) before becoming the DC term of each 4x4 sub-block.
H = [[1,1,1,1],[1,1,-1,-1],[1,-1,-1,1],[1,-1,1,-1]] (symmetric); f = H c H.
1D butterfly: s0=c0+c1 s1=c0-c1 s2=c2+c3 s3=c2-c3;
y0=s0+s2 y1=s0-s2 y2=s1-s3 y3=s1+s3. Pure i64, no shifts.
genealogy_id: itu_t_h264_sec8_5_10_luma_dc_hadamard
lineage_id: hadamard_4x4_2pass_butterfly
license_tier: ORIGINAL
dependencies 1 imports · 6 importers
imports: nx_syscalls.nx
imported by: nx_h264_decode_frame.nxnx_h264_hadamard_gate.nxnx_h264_iframe.nxnx_h264_intra_recon.nxnx_h264_pframe_recon.nxnx_h264_slice_extract.nx
structs
| none |
consts
| none |
functions
| 14 | func had1d(c0: i64, c1: i64, c2: i64, c3: i64, y: *i64) -> i64 called by 1: nx_h264_hadamard4x4 |
| 27 | func nx_h264_hadamard4x4(d: *i64) -> i64 |