Hacker News new | ask | show | jobs
by toast0 810 days ago
What tv gives you static today? Analog tv changed channels fast, because hopefully you got signal lock quickly, and then you can start decoding wherever you are on the screen, and when the next vblank comes, you're good. Tuning latency less than one field.

Digital TV tuning is slow because of compression; when you tune to a stream in progress, you usually can't meaningfully decode it until you receive a I-frame. But I-frames are bigger than motion predicted frames, so it makes sense to only ocassionally send I-frames. Latency: technically unbounded, usually a couple of seconds.

It potentially gets a bit worse if you're on a switched video cable system where your box has to request channels, as now there's a request / response delay. But it shouldn't be too long for local comms... And in theory, the head end could start the stream with an I-frame (otoh, it may not have the processing power to decode/encode).

In theory, a TV with multiple tuners could do predictive decoding to help with channel surfing, but I don't think anybody actually does that.

2 comments

I wonder if another solution would be for channels broadcast a subchannel which has more frequent i-frames, but lowered resolution and framerate to compensate for it in terms of overall bandwidth. When you surf, the TV could first hit up the subchannel, get the low-rez i-frame, and start showing a lower-quality version of the channel's video feed much faster, then start working on fetching and decoding the "real," full-resolution video feed and switch it over when it's ready. It still wouldn't be as fast and perfect as it was for analog and it'd require some industry collaboration and a bit of new hardware, but it still should be a more pleasant experience for people who just want to quickly see what's on.
> And in theory, the head end could start the stream with an I-frame (otoh, it may not have the processing power to decode/encode).

Some systems already do this. When I change channel on my iptv, it immediately shows static frame (looks like last known iframe) and starts sound, then after up to 2s starts playing video, probably waits for next iframe because you can't start decoding from middle of stream anyway.