Thursday, June 9, 2011

NTSC demystified - Cheats - Part 6

Throughout this series of articles we've seen a number of "cheats" or non-standard signals which simplify NTSC signal generation. This post summarizes them.

1. "fake" progressive scan instead of interlaced scan. Write 262 lines per frame. This makes it much easier to get a stable image on the TV. Only even lines are written / drawn. The odd lines in between remain as black lines. This technique has been used in NES, SNES, uzebox and a number of older game consoles. [1]

2. "simple v-sync". The NTSC spec states that half-scanlines should be used for v-sync. This includes 3 kinds of pulses pre-equalization, serration and post-equalization. All of these are unnecessary. One "long-sync" is sufficient to perform V-Sync. Of 262 lines in a frame, 261 lines have "short sync" lasting 4.7uS, one line (usually line number 248) has a "long sync" lasting about 58.8555uS. [2]

Lets see this is with a bit more detail.
Lines 10-234 are visible and will have active video. All other lines will have sync followed by black level.
Every line other than 248 has the usual 4.7uS "short sync". Line 248 has a long sync lasting 58.55uS

3. Color burst always ON. If color generation is also manually handled, this can simplify software a bit. Instead of giving out 9-12 cycles of color burst at the right time, the color burst can be left always ON. Yes, this includes h-sync period. In the active part of each line, the phase of the color sub-carrier is changed to generate different colors. The rest of the line including sync can have the color burst superposed with the rest of the signal (sync, front porch, and back porch). TVs don't care since they remove the chroma signal anyway. 

References

16 comments:

  1. Hello Thejasvi and Sagar (I'm commenting on both of your blogs). I've been doing some very similar work recently, involving video and he LPC1768. Is there a common forum where I can share my ideas on this kind of project? I think I have some pretty innovative solutions. My application is a bit different from yours, but the technical details are very similar.

    Sincerely,
    -Chris

    ReplyDelete
  2. sorry to post anonymously - I couldn't get the website to accept my ID for some reason. I am The Stumbling Engineer at http://technobar.blogspot.com

    -Chris

    ReplyDelete
  3. I'd love to see your ideas.

    Perhaps we could discuss it in the lucidscience forum. This is a link to my post there.

    http://www.lucidscience.com/forum/tm.aspx?high=&m=536&mpage=1#537

    If you like retro hardware, then you'll love Brad's Lazarus-64 project.

    http://www.lucidscience.com/pro-lazarus-64%20prototype-1.aspx

    ReplyDelete
  4. Your video generating articles are awesome.
    Can´t wait to read more :)

    ReplyDelete
  5. This comment has been removed by a blog administrator.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. The cell phone information you have wanting is right at your fingertips simply by searching on line for reverse mobile phone info jailbreak roblox hack

    ReplyDelete
  8. "As I read many blogs while surfing the internet. but, when I read your posts I really understand what exactly you want to say through your content with readers. I tried something too on Freedom Club's Blog, Read it out:
    1. Bsnl online recharge,
    2. Vodafone online recharge,
    3. Airtel online recharge

    ReplyDelete
  9. thanks for the proper explanation, I was quite confused how to post a reply. Livescore Today

    ReplyDelete
  10. thanks for the proper explanation, I was quite confused how to post a reply. Koora

    ReplyDelete
  11. Hi, I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job . Keep it up. Thank You For This Articla homestay melaka with swimming pool

    ReplyDelete
  12. I Appreciate Your Efforts In Preparing This Post. I Really Like Your Blog Articles. There are many nice blogs as yours on instagram, please go to site picbear

    ReplyDelete