3.1.8 NSCodec Bitmap Compression

NSCodec bitmap compression is used when the RDP session color depth is 32 bpp and the bitmap of interest is either 24 bpp (RGB with no alpha channel) or 32 bpp (RGB with an alpha channel). The capability of a server to encode and a client to decode with NSCodec bitmap compression is advertised in the bitmap codec capability set ([MS-RDPBCGR] section 2.2.7.2.10).

The value of the codecGUID field of the Bitmap Codec structure ([MS-RDPBCGR] section 2.2.7.2.10.1.1) for NSCodec MUST be 0xCA8D1BB9000F154F589FAE2D1A87E2D6.

Similar to RDP 6.0 bitmap compression ([MS-RDPEGDI] section 3.1.9), the NSCodec algorithm performs a color space conversion from ARGB to AYCoCg and uses a collection of compression techniques to compress each of the color planes individually.

The following techniques (described in [MS-RDPEGDI] section 3.1.9.1) are used within the scope of NSCodec bitmap compression:

  • Splitting and combining color planes ([MS-RDPEGDI] section 3.1.9.1.1)

  • Color space conversion ([MS-RDPEGDI] section 3.1.9.1.2)

  • Chroma subsampling and super-sampling ([MS-RDPEGDI] section 3.1.9.1.3)

  • Color loss reduction ([MS-RDPEGDI] section 3.1.9.1.4)