Steps to reproduce the problem:
1. When using the demo application - https://mozilla.github.io/pdf.js/web/viewer.html, load  the document 5311693-1.pdf

[5311693-1.pdf](https://github.com/mozilla/pdf.js/files/5137225/5311693-1.pdf)

2. go to Page 16 of the document.

3.  The strip of  EKG data  appears to have an incorrect line width   under the  Multi-color heat rate chart.

4.  When the same document is generated by pdffactory ,  the artifact are not visible.

What is the expected behavior? (add screenshot)
![expected](https://user-images.githubusercontent.com/3577617/91461157-4622cb80-e84e-11ea-8e5d-750c7b4e64ae.PNG)

What went wrong? (add screenshot)
The EKG line strip  has an incorrect thickness.  the x-transform seems to stretch the line thickness.  See the  stri in the RED rectagngle of the attached behavior versus the GREEN rectangle

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):
 https://mozilla.github.io/pdf.js/web/viewer.html
composeFn = composeSMaskLuminosity;
    } else {
      composeFn = composeSMaskAlpha;
    }
    
    const PIXELS_TO_PROCESS = 1048576;
    const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
    for (let row = 0; row < height; row += chunkSize) {
      const chunkHeight = Math.min(chunkSize, height - row);
      const maskData = maskCtx.getImageData(0, row, width, chunkHeight);
      const layerData = layerCtx.getImageData(0, row, width, chunkHeight);
      if (hasBackdrop) {
        composeSMaskBackdrop(maskData.data, r0, g0, b0);
      }
      composeFn(maskData.data, layerData.data, transferMap);
      maskCtx.putImageData(layerData, 0, row);
    }
  }
  function composeSMask(ctx, smask, layerCtx, webGLContext) {
    const mask = smask.canvas;
    const maskCtx = smask.context;
    ctx.setTransform(
      smask.scaleX,
      0,
      0,
      smask.scaleY,
      smask.offsetX,
      smask.offsetY
    );
    const backdrop = smask.backdrop || null;