The HS-PDSCH carries the HSDPA data of 1.28 Mcps TDD. The number of bits that one HS-PDSCH code carries in one slot depends on its slot format. The slot format fixes the spreading factor and the modulation. It also says whether SS and TPC symbols take part of the burst. Let's read the slot format table of 25.221 first, and then use it to count the bits of a whole TTI.
HS-PDSCH Time Slot Formats
Based on Table 8KA: Time slot formats for the HS-PDSCH in 25.221. The table is the same in 25.221 v19.0.0. It has ten slot formats, and all of them use a midamble of 144 chips and no TFCI.
Each row is one slot format of one HS-PDSCH code. The columns give the spreading factor, the midamble length, the TFCI bits, the SS and TPC bits, and the bits per slot. The last two columns split the data bits between the two data fields of the burst, one on each side of the midamble.

25.221 Table 8KA, time slot formats for the HS-PDSCH. Formats 0 to 5 carry only data, and formats 6 to 9 give 4 bits to SS and TPC for semi-persistent resources.
SS and TPC sit right after the midamble, so they reduce data field 2 only. Take format 7 as an example. Data field 2 has 22 symbols at SF = 16. Two of them carry SS and TPC in QPSK, and the other 20 carry 16QAM data, which gives 80 bits. So the slot has 88 + 80 = 168 data bits and 4 SS and TPC bits, 172 bits in total. Format 9 works the same way at SF = 1: 1408 + 1400 = 2808 data bits, plus 4 bits, gives 2812 bits.
SF = 16 gives 22 symbols per data field : each data field is 352 chips, so QPSK carries 44 bits, 16QAM 88 bits and 64QAM 132 bits per field.SF = 1 gives 352 symbols per data field : QPSK carries 704 bits, 16QAM 1408 bits and 64QAM 2112 bits per field.Formats 6 to 9 are only for semi-persistent HS-PDSCH resources : they carry the SS and TPC commands for the HS-SICH when there is no HS-SCCH.SS and TPC always use QPSK : in a 16QAM slot they carry 4 bits but take the room of 8 data bits.
From Slot Format to Bits per TTI
A slot format gives the bits of one code in one slot. The HS-SCCH tells the UE how many codes and how many slots it gets in a TTI. Together, the two give the physical channel bits of the TTI, and the coded transport block must fit into them.
Let's take format 0, SF = 16 with QPSK, which carries 88 bits per code per slot. With all 16 codes in one slot, the slot carries 16 x 88 = 1408 bits. That is the same as format 2, a single SF = 1 code with QPSK. With 16QAM on 16 codes, format 1 gives 16 x 176 = 2816 bits, which matches format 3. So a full slot has the same capacity with SF = 16 or SF = 1. SF = 16 lets the Node B split that capacity between codes, while SF = 1 gives it all to one code.
In 1.28 Mcps TDD, one HS-DSCH TTI is one 5 ms sub-frame. If the UE gets 16 codes in 5 slots with QPSK, the TTI has 5 x 1408 = 7040 physical channel bits. The HS-DSCH category of the UE also sets limits. For example, 25.306 Table 5.1c allows categories 13 to 15 at most 5 HS-DSCH timeslots per TTI and at most 14043 transport channel bits. The HSDPA Transport Block Size page shows the transport block sizes for each group of categories.
A full slot carries 1408 QPSK bits at either spreading factor : 16 codes at SF = 16 equal one code at SF = 1.The TTI capacity is bits per code per slot x codes x slots : the HS-SCCH gives the codes and the slots.The UE category caps the slots and the transport block : 25.306 Table 5.1c lists both for each category.
Reference
- 3GPP TS 25.221 v19.0.0 : clause 5A.3.9, HS-PDSCH, and Table 8KA, time slot formats for the HS-PDSCH
- 3GPP TS 25.306 v19.0.0 : Table 5.1c, 1.28 Mcps TDD HS-DSCH physical layer categories
- 3GPP TS 25.222 v19.0.0 : clause 4.5, HS-DSCH TTI of 5 ms for 1.28 Mcps TDD