Video Coding Basics - How is this so efficient?

Поделиться
HTML-код
  • Опубликовано: 30 июн 2024
  • Ever wondered how video coding works on the insides? I mean you might have used some video encoders and decoders but what is under the hood in the intestines of these modules?
    I am not going into detail on any specific codec but I try to cover the basic building blocks of encoders and decoders which are common to all popular video coding standards like h.264/AVC, h.265/HEVC, VP8, VP9, AV1 or even h.266/VVC. So after watching this you hopefully know the basics of how it is even possible to transmit stunning looking high quality video at such incredibly low bitrates.
    References:
    - Material: github.com/ChristianFeldmann/...
    - YUView: github.com/IENT/YUView
    Full coding Videos:
    - Sequential: • Block Based Video Deco...
    - Slices: • Block Based Video Deco...
    - Tiles: • Block Based Video Deco...
    - Wavefront: • Block Based Video Deco...
    Content:
    00:00 - Intro
    03:14 - Compression Efficiency
    06:55 - Redundancy
    10:29 - Splitting into blocks
    12:37 - Block partitioning
    13:53 - Coding Loop
    15:13 - Intra Prediction
    17:07 - Motion Compensation
    18:11 - Coding Order
    19:24 - Bi-directional Motion Compensation
    20:33 - Transformation and Quantization
    21:41 - Discrete Cosine Transform
    25:07 - Quantization
    29:28 - Entropy Coding
    31:17 - Loop Filtering
    32:58 - Coding Loop - Again
    35:25 - Decoding in Action
    37:48 - Practical example - YUView
    39:44 - References

Комментарии • 34

  • @user-us7rg4cd6p
    @user-us7rg4cd6p 5 месяцев назад +12

    Dude.. Where was this guy all along? This is an amazing video!

  • @shenghuang95
    @shenghuang95 Год назад +7

    This is the best video on Video Coding basics out there. Thank you!

  • @darshan5044
    @darshan5044 6 месяцев назад +4

    A gem of a video thanks for the presentation.

  • @farhatibrahim4034
    @farhatibrahim4034 2 года назад +2

    simply, amazing, we want other videos for every standard ! (start by VVC)

    • @christianfeldmann3774
      @christianfeldmann3774  2 года назад +2

      Yep that would be fun to do. Or there also is much more to say about the individual components. Now if only the week were one day longer :p

  • @psychatrix
    @psychatrix 2 года назад +1

    Really well explained, clear and to the point. Thank you!

  • @halodiski
    @halodiski 2 года назад +2

    Really nice deep dive into video coding.
    I wish I had a presentation like this one back at university :)

  • @omarmashaal237
    @omarmashaal237 11 месяцев назад

    Excellent explanation and demonstration. Thanks

  • @boshi9
    @boshi9 7 месяцев назад

    Thanks for making this presentation, Christian! It's very helpful and definitely deserves more views.

  • @phanindra406
    @phanindra406 7 месяцев назад

    Thanks a lot for the information, It really helped in grasping the whole process.

  • @MrVipulLal
    @MrVipulLal Месяц назад +1

    Very useful video. Thanks!

  • @manfredvonrunkel6771
    @manfredvonrunkel6771 2 года назад

    Amazing! Thanks for sharing!

  • @jianhuazhou4867
    @jianhuazhou4867 2 года назад

    Thank you for your knowledge sharing!

  • @chandusrinivas7813
    @chandusrinivas7813 7 месяцев назад

    Really, you did very hard work,
    Thank you so much Christian Feldmann. 🙏🤝
    you have explained the concepts very easily.

  • @armint598
    @armint598 2 года назад

    Awesome, I liked the 60 fps hand gestures.

  • @luc3056
    @luc3056 10 месяцев назад

    Fantastic explanation of a complex topic. This is the best teaching material out there. Thank you very much, also for the interesting tool!
    Would LCEVC be a good follow-up video? To the best of my understanding, it introduces some new concepts. Probably there is already much more to say anyway.
    All the best for your predictable and unpredictable future frames of life.

    • @christianfeldmann3774
      @christianfeldmann3774  10 месяцев назад

      Great to hear that it was helpful. Yes the list for follow-up videos is long. I would first like to go a bit deeper into details of video coding though.

  • @adithyan_ai
    @adithyan_ai 2 года назад +1

    Nice!

  • @bboybasics2
    @bboybasics2 2 года назад +1

    I looked very hard to see a video of this quality, thank you.
    Isn't techniques like RLE used before the enthropy coding?
    Do you have books, articles or other videos if we want to dig further?

    • @christianfeldmann3774
      @christianfeldmann3774  2 года назад +3

      Thank you! You are right. So in order to use entropy coding efficiently, the data that you push into it is usually preprocessed and ordered in certain ways. This is in some way similar to run length encoding where certain bins that are put into the entropy coding engine can mean "all of the following coefficients in the block are 0" (or something similar. I really depends on the codec).

    • @christianfeldmann3774
      @christianfeldmann3774  2 года назад +2

      For more reading this page has a list of papers, books and other things: awesome.video/

    • @simulping4371
      @simulping4371 7 месяцев назад

      @@christianfeldmann3774 oh my god this is such a lifesaver for a multimedia enthusiast

  • @AdmMusicc
    @AdmMusicc 2 месяца назад

    Wow amazing video! How does the coding loop know when the encoding has been finished, if we are iteratively sending the same frame's prediction back to the intra-prediction module? Also, how are the intra and inter-prediction modules working together? Since, they both will try to predict pixel values for the same pixels (albeit using different approaches)

    • @christianfeldmann3774
      @christianfeldmann3774  Месяц назад

      The loop is running on a block base. So each frame is split into blocks and these are processed sequentially. Once all blocks have been processed, the encoding of the frame is done. The intra and inter prediction modules do not interfere. The encoder can try out all different modes but ultimately it will have to decide on exactly one mode (intra or inter) that is then signaled in the bitstream.

    • @AdmMusicc
      @AdmMusicc Месяц назад

      @@christianfeldmann3774 Amazing perfect!! Do you have resources or book material where I xan study this more algorithmically, preferably with code?

    • @christianfeldmann3774
      @christianfeldmann3774  Месяц назад

      @@AdmMusicc I am not sure if there is something that covers this with code. But this is always a good starting point: github.com/krzemienski/awesome-video?tab=readme-ov-file#books

  • @AuroraLex
    @AuroraLex Год назад

    Hi!
    Is it true that B-frames are not well suited for high-motion content? For example, if dynamic B-frames/look-ahead is used, is the amount of motion the deciding factior regarding the number of consecutive B-frames the encoder choose to use?

    • @christianfeldmann3774
      @christianfeldmann3774  Год назад +3

      Hi. So this question is hard to answer because this is probably dependent on the codec as well as the specific encoder implementation. But in general for a "normal user" of an encoder this should not matter because the encoder will choose the best coding structure depending on the content that comes in (if the encoder is allowed to choose the coding structure freely). So there is certainly situations where B-frames are less effective (e.g. if the frames are very dissimilar which may happen for very high motion). But in those situations motion compensation in general is not effective.

    • @AuroraLex
      @AuroraLex Год назад +1

      Ok, thank you for the explaination!
      Video encoding is such a fascinating topic 🙂

  • @uzefulvideos3440
    @uzefulvideos3440 7 месяцев назад

    5:27
    Not exactly a fair comparison, since near-transparent audio quality is compared with medium-appeal video here. For transparent video and audio compression, the difference in compression ratio isn't that huge anymore. A big difference seems to be that audio quality below transparency quickly becomes unappealing (maybe partly because it's more densely filled with information we deem important?), while the same is not true for images or video, where we often don't really mind significant perceptual degradation in quality.

    • @christianfeldmann3774
      @christianfeldmann3774  7 месяцев назад +3

      Hi! I am sorry if I offended any audio compression engineers here. I did not mean to say that audio compression is easy. It is definitely not. We can probably discuss all day what would be good/bad quality in video compared to audio and what is worse or comparable. But I think my main point still holds. I was just using very typical values from practical applications. But why they are typical is also discussable. Mostly I think that audio bitrates are low compared to video so that they are typically chosen higher then actually necessary because the main focus is on saving bitrate on video.
      But of course I also get your point this greatly depends on the application and what you consider good/transparent quality for video and audio.

  • @Ray-jp8hr
    @Ray-jp8hr 2 года назад

    քʀօʍօֆʍ 😄

  • @MohamedBenamer940
    @MohamedBenamer940 6 месяцев назад

    It's very good vidéo, but you know why it's really bad also

  • @MohamedBenamer940
    @MohamedBenamer940 6 месяцев назад

    👎