System Auto Frame Rate for TV Boxes
AFR (auto frame rate) – is function which designed to match the media player's output frame rate to the original frame rate of (video) content. This applies to content that's mastered at different frame rates, for example 24fps film-based content or other international video content encoded at 60, 50, 30, 25, and 24fps.
Media player output frame rates will also match (and switch) the display's refresh rate appropriate for your region. For example 29.97fps for NTSC. 25fps and 30fps content uses frame rate doubling to display at 50Hz and 60Hz when available, matching its original appearance while preserving a fluid user interface.
For TV Box is important to have AFR in the system to make sure all the content plays in high quality.
System AFR can be implemented both through separate StageFright and through MediaCodec libraries with output to SurfaceView, and for two at once. For example, in MX Player (HW) with any content, even with HLS (HTTP Live Streaming). In fact, it is a universal crutch. Software cannot even detect that AFR is working and the output mode is changing. Since this is a universal solution, this kind of AFR can cause problems in some cases. For example, in some software there can be an intermediate switching while rewinding. In IPTV-managers, there can be extra switchings while changing channels, etc.
Modern AFR (fully implemented in the Android 6+ API) for processing in Kodi 17+, ViMu (with ViMu Engine), Archos, Plex, etc.
That means software (video players) independently control the resolution and the frequency of the display in the necessary way, accordingly to software logic. At the same time, everything that APP does not going to spread beyond the software (i.e. when APP stopped, and the system itself restored to the standard parameters). This is the ideal AFR implementation and this is the future. The problem only few TV Box manufacturers implement such abilities for AFR.
For example the content of 24p (video 24 fps). Most playback devices, in order to output 24 fps to an output device with a 60 Hz sweep rate, do a 3: 2 pull down conversion. Here is how it looks like:
The first frame is converted to two, the second to 3, the third to 2, the fourth to 3, and so on. So 24 frames become 60 frames. Simple, but it leads to the judder effect - unevenness – part of frames are displayed 1/30 of a second, and the other one’s 1/20 of a second. To get rid of the judder effect, the frequency of the display should match the frame rate in the video. Therefore, for 24p video you need a display frequency of 24 Hz. In this case, each frame will display an equal amount of time and will be perfect.
Hi-End TVs have a function, which helps to rebuild the input sequence of frames. For example, TV Box set HDMI out for these parameters: 60 Hz. During 23.976p / 24p video playing, TV Box does standard 3: 2 pull down conversion and outputs 60p framerate. The TV input determines this sequence and reassembles it back to the original 23.976p / 24p. With such a TV, in fact, it doesn’t matter whether TV Box has auto-frame support or not - uniformity will always be perfect when playing 23.976p / 24p.
AFR works perfect on Ugoos AM3 deivce