chiark / gitweb /
Move pixel aspect ratio discussion from NOTES to bedstead.c.
authorBen Harris <bjh21@bjh21.me.uk>
Sun, 6 Nov 2016 16:16:39 +0000 (16:16 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Sun, 6 Nov 2016 16:16:39 +0000 (16:16 +0000)
NOTES
bedstead.c

diff --git a/NOTES b/NOTES
index c14c9913491167a0127e43ad8a5571154762db82..84bc399372fcbba740f2e47283ccf5ff70ba0537 100644 (file)
--- a/NOTES
+++ b/NOTES
@@ -1,12 +1,3 @@
-Pixel aspect ratios: http://www.lurkertech.com/lg/video-systems/#sqnonsq
-
-In 480i, industry convention is that you get square pixels with a pixel
-clock of 12+3/11 MHz.  In 576i, you need 14.75 MHz.  The SAA5050 takes a
-nominal 6MHz clock and uses both edges to output subpixels (duty cycle
-between 0.4 and 0.6).  This means that the nominal pixel aspect ratios
-are 12+3/11:12 for 480i and 14.75:12 for 576i.  These correspond to
-pixel widths of 102.3 and 122.9 respectively.
-
 Precise pixel layouts for mosaic graphics:
 
 Based on a 6x10 grid of pixels:
index 72922b48cafd4d19bccc4a1738f9677e8909f9fb..de42f9b50d5a544afe50b4452994835ce68029b6 100644 (file)
 
 /*
  * Design parameters.  These can vary between fonts in the Bedstead family.
+ *
+ * To faithfully represent the output of an SAA5050, we need to know a
+ * little about TV pixel aspect ratios:
+ *
+ * http://www.lurkertech.com/lg/video-systems/#sqnonsq
+ *
+ * The SAA5050 can be used to drive both 480i ("NTSC") and 576i
+ * ("PAL") displays.  In 480i, industry convention is that you get
+ * square pixels with a pixel clock of 12+3/11 MHz.  In 576i, you need
+ * 14.75 MHz.  The SAA5050 takes a nominal 6MHz clock and uses both
+ * edges to output subpixels (duty cycle between 0.4 and 0.6).  This
+ * means that the nominal pixel aspect ratios are 12+3/11:12 for 480i
+ * and 14.75:12 for 576i.  These correspond to pixel widths of 102.3
+ * and 122.9 respectively.
+ *
+ * 102.3 is close enough to 100 that we may as well just use square
+ * pixels, which will work better on modern displays.  We round 122.9
+ * to 124 so that XQTR will be precisely an integer.
  */
 
 struct param {