Skip to content

Allowing much deeper band splits#17

Closed
jmvalin wants to merge 1 commit intojmvalin/bits2pulses2from
jmvalin/deep_band_split2
Closed

Allowing much deeper band splits#17
jmvalin wants to merge 1 commit intojmvalin/bits2pulses2from
jmvalin/deep_band_split2

Conversation

@jmvalin
Copy link
Contributor

@jmvalin jmvalin commented Feb 13, 2026

Removes the LN=-1 split limitation and changes the band layout so that all bands can now split all the way down to N=2 or N=3.

@jmvalin jmvalin self-assigned this Feb 13, 2026
@jmvalin jmvalin force-pushed the jmvalin/deep_band_split2 branch from 6bab893 to c65b6bd Compare February 13, 2026 16:25
@jmvalin jmvalin force-pushed the jmvalin/bits2pulses2 branch from 0093a99 to bed775f Compare February 18, 2026 15:28
@jmvalin jmvalin force-pushed the jmvalin/deep_band_split2 branch from c65b6bd to d6879fd Compare February 18, 2026 15:28
Removes the LN=-1 split limitation and changes the band layout so that
all bands can now split all the way down to N=2 or N=3.
@jmvalin jmvalin force-pushed the jmvalin/deep_band_split2 branch from d6879fd to 5965c49 Compare February 18, 2026 18:20
@jmvalin jmvalin force-pushed the jmvalin/bits2pulses2 branch from bed775f to 7348434 Compare February 18, 2026 18:20

static const oac_int16 eband5ms[] = {
/*0 200 400 600 800 1k 1.2 1.4 1.6 2k 2.4 2.8 3.2 4k 4.8 5.6 6.8 8k 9.6 12k 15.6 */
0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40, 48, 60, 78, 100

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this fix a long-standing typo or is there an advantage to switching to a 16-bin band?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I think I understand, this would allow the band to be split up to four times. Useful for high frequency tones?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, the new bands are 16 and 24 wide instead of 18 and 22, so they can split much deeper.

Copy link

@phill-williams phill-williams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed, but I admit I don't really understand the changes in modes_fixed.h and modes_float.h, it would be helpful for someone with expertise in the codec to review.

Is there a unit test that validates the new functionality?

@jmvalin
Copy link
Contributor Author

jmvalin commented Mar 10, 2026

The static_modes_*.h files are auto-generated. The changes to those files are only a consequence of the eband5ms change in modes.c.

@jmvalin
Copy link
Contributor Author

jmvalin commented Mar 10, 2026

Thanks. PR merged.

@jmvalin jmvalin closed this Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants