Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Did Anyone Ever Find That Code For Mixed Blocks? (Read 4773 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Did Anyone Ever Find That Code For Mixed Blocks?

Hi all,

I hate to keep bringing this up, but what ever happened to the idea of adding mixed blocks to LAME?  I think with all these new fangled code additions lately, it would be a perfect time to throw in mixed blocks for future testing and tweaking.     

How about it?  Can anyone locate some code for mixed blocks that can be plugged into LAME?

mp3

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #1
Well, actually Takehiro is coding the base of mixed block support to Lame as we speak. This is just the base, so actual correctly working mixed block switching is not in works yet.

In mixed block the low frequency part is handled as long block and high frequency part as short block.
I talked with Takehiro and Naoki and the problem with mixed blocks seems to be that you can't switch to short block after a mixed block.
So, lets say the psychoac would want to use m-m-m-s blocks. But this is not possible, because after a mixed block a long block must follow. Therefor with 1-pass encoding it will be changed to m-m-m-m.
If 2-pass encoding is implemented, then it could be changed to s-s-s-s, which would give better pre-echo protection.

Anyway, Naoki has said that he doesn't think mixed blocks would bring much quality improvements.. But anyway, the base for mixed blocks for Lame is now coded.
Juha Laaksonheimo

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #2
Quote
Anyway, Naoki has said that he doesn't think mixed blocks would bring much quality improvements


Is this limitation of "having to use a long block following a mixed block", limited only to the mp3 spec?  Many different codecs utilize mixed blocks, ATRAC being one of them.  Is this limitation fixable?  And how can the codec refuse to use a short block after a mixed block?  How is this enforced by the mp3 spec?  Sounds unlikely to me that it's unfixable.  The future of pre-echo control is at stake!  :eek:

mp3

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #3
Seems that it's a spec problem of MP3... no way to go mixed<->short.

About the pre-echo control.. Naoki thinks that better temporal masking has much more influence on pre-echo control than mixed blocks.
Juha Laaksonheimo

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #4
There will always be problems switching from a long to a short block because MDCT algorithm is based on 50% overlaps, therefore in MP3, a hybrid start window is used whenever there is a long->short block switch and a hybrid stop window whenever there is a short->long switch. This ensures that aliases gets cancelled. Other encoders may be using other methods, but they will face the same problems which have to be solved.

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #5
Has anybody thought of any other way to overcome this or would some form of a two-switched filter bank have to be implemented?
Not to go off the topic tangent, but would a discrete wavelet transform suffer from the same problem of using a hybrid stop transition window in between short -> long blocks and vice versa, or can you virtually shift along the time/frequency domain using wavelet transform and that's what makes them so efficient maybe especially, with short blocks and with transients? I also heard the wavelet packet-tree structure closley resemble the critical bands of the human ear which of course this is always a plus as well.
budding I.T professional

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #6
An encoder using hybrid MDCT/DWT would not need to do block switching at all. Everything will be long blocks.

Did Anyone Ever Find That Code For Mixed Blocks?

Reply #7
I see, very interesting I hadn't realized that. So basically what your getting is a two-switched anaylsis filter bank, that is primarily composed of long blocks that, say for instance where all a length of 2048 and that would allow for good stationary coding as well as transient coding in the process, not a bad deal.
budding I.T professional