3.2.8.1.5 Progressive Entropy Encoding
The progressive encoder either can send a complete tile or can transmit multiple versions of the same tile over a period of time, with each subsequent version becoming more refined and improving in quality. The input to the Progressive Entropy Encoding Stage is generated by the Sub-Band Diffing engine (section 3.2.8.1.4) and is either an original tile or a difference tile.
If a tile is to be transmitted in its entirety, then the tile data is dispatched to the RLGR1 Entropy Encoder ([MS-RDPRFX] section 3.1.8.1.7.1), and the output forms the payload to be sent to the decoder.
If a tile is to be transmitted progressively, the Progressive Entropy Encoding Stage is exercised numerous times with the same input tile to generate multiple payloads that are consumed by the decoder to re-create the tile in its entirety. Sending a tile progressively is accomplished by executing a First Progressive Pass (section 3.2.8.1.5.1) followed by subsequent Upgrade Progressive Passes (section 3.2.8.1.5.2).
SB represents the data output from the Sub-Band Diffing Stage. This data is sent through multiple progressive stages.

Where D1, D2, D3, ..., Dn is the data that is transmitted via n progressive passes.
When a progressive pass is performed, DAS ("Data Already Sent") represents the cumulated data that has been transmitted through the previous passes, DTS ("Data To Send") represents the data to be transmitted in the current pass, and DRS ("Data Remaining to be Sent") represents the data that remains to be sent after the current pass.
When performing pass i:


Each time a progressive pass is performed, DRS is reduced by the current DTS, and DAS is increased by the current DTS for the next pass.