May I ask a question about 3gpp ts 38.212?

In subclause, C in the equation of Nref refers to the number of code blocks of the transport block. But it is not very clear to me if “the transport block” means the transport block under channel coding, or the transport block of size TBS_LBRM and coding rate 948/1024? Somebody please be kind to explain this and tell how to reach that conclusion. Thanks.


In that equation, R_LBRM is fixed to 2/3. TBS_LBRM is the “allowed/actual” transport block size which depends on the number of layers, modulation order, and number of resources.

You can check for example this publication for more info:


Thank you for your reply. As listed in table 1 of the paper, TBS_LBRM takes only several values. It’s not the actual transport block under processing. So there comes up the question C in the equation of Ncb is the number of code blocks of the actual transport block, or the transport block of size TBS_LBRM. One will get different numbers if one uses either of the transport block sizes.

If by actual you mean the original TBS, then yes, C should be the number of code blocks of the original TBS, not TBS_LBRM.

As far as I know, TBS_LBRM places a limit effectively “per code block”, and therefore, it should use the same code blocks as the one calculated originally. So with LBRM, the output of each code block is limited. You can think of this as distributing the “limit” equally on all code blocks. Otherwise, if applied to all code blocks stacked together, then I think the limitation can completely wipe out the final code block.

Imagine that for some TBS and C, the buffer is limited. If the transport block is divided into two or three transport blocks, the number of code blocks of each transport block becomes smaller. And to some point the buffer is not limited any more. The total buffered soft bits are more than those of the one transport block. Is this a valid example?

That would not be a problem, because for LBRM the buffer length takes the minimum between N and N_ref. So if you end up with such a case, then the buffer length will be equal to N.

Check Slide 18 here:

I mean the two cases contradicts with each other in that example. With the same total transport block size and number of code blocks, one is buffer limited, the other is not. Isn’t it odd?

The picture on the right depicts what happens when there is a limitation. What I wanted to show you there (addresing your question above), is that if the resulting output is shorter than the limit, than the buffer length will be equal to the output length, i.e., N_cb = N.

Ok, I’ve got my conclusion for now.Thank you very much.

You are welcome.