Introduction

Dirac is a hybrid motion-compensated video coding standard that can be used without the payment of license fees.  Dirac was released at around 2008. Dirac specification

Typical hybrid video coder:

taken from the paper “AV1 and VVC Video Codecs: Overview on Complexity Reduction and Hardware Design”, by MARCEL CORRÊA et al.

Some features of Dirac

  • Dirac employs wavelet compression (like JPEG2000), instead of the discrete cosine transforms used in most other codecs. It’s mentioned in literature that Wavelet transform having the advantage of preserving fine details better than block-based transforms. Wavelets operate on the entire picture at once instead focusing on small areas at a time.

 

  • Image motion is tracked and the motion information is used to make a prediction of a later frame. A transform is applied to the prediction error between the current frame and the previous frame aided by motion compensation and the transform coefficients are quantized and entropy coded.  Temporal and spatial redundancies are removed by motion estimation, motion compensation and discrete wavelet transform respectively.  
  • Dirac uses dead-zone quantization technique by making the first set of quantization steps twice as wide and allows Dirac to perform coarser quantization on smaller values. Dirac also provides sub-pixel motion compensation with motion vectors 

 

  • Dirac uses overlapped block-based motion compensation (OBMC) to achieve good compression and avoid block-edge artifacts which would be expensive to code using wavelets.

 

  • According to BBC Research, Dirac was developed with a view to optimize its performance with compression ratio and perceptual quality at the forefront.

Technical Literature on Dirac

1) “PERFORMANCE ANALYSIS AND COMPARISON OF THE DIRAC VIDEO CODEC WITH H.264/MPEG-4 PART 10 AVC”, by ARUNA RAVI et al. 2010

2) “Survey of Dirac: A Wavelet Based Video Codec for Multiparty Video Conferencing and Broadcasting”, by Ahtsham Ali, Nadeem et al., 2011

3) Dirac specification

 

Using ffmpeg to encode in Dirac

ffmpeg by default supports Dirac encoding and decoding, apply ‘ffmpeg -codecs | grep dirac’

DEV.LS dirac Dirac (encoders: vc2 )

To Encode with ffmpeg (100 frames)

ffmpeg  -s 352×288 -i .\yuv\akiyo_cif.yuv  -c:v dirac  cif.drc

 

To Decode with ffmpeg use:

ffmpeg -f dirac -i cif.drc -vsync 0 -pix_fmt yuv420p raw.yuv

 

Notes:

for encoding input sources should be divisible by 16

it’s not clear how to set bitrate in Dirac encoding with ffmpeg

 

18 Responses

  1. I’m now not sure where you’re getting your information, however great topic. I needs to spend some time learning more or figuring out more. Thanks for wonderful information I was searching for this information for my mission.

  2. It?¦s really a great and helpful piece of information. I?¦m glad that you simply shared this useful info with us. Please keep us up to date like this. Thank you for sharing.

  3. Hi, I do believe this is an excellent web site. I stumbledupon it 😉 I will
    come back yet again since I saved as a favorite it. Money and freedom
    is the best way to change, may you be rich and continue to help others.

  4. Have you ever thought about including a little bit more than just your articles? I mean, what you say is important and everything. However think of if you added some great visuals or video clips to give your posts more, “pop”! Your content is excellent but with pics and clips, this site could certainly be one of the very best in its field. Awesome blog!

  5. What i don’t realize is in truth how you are no longer really a lot more smartly-liked than you might be right now. You’re very intelligent. You understand therefore considerably with regards to this topic, produced me in my view imagine it from a lot of various angles. Its like men and women aren’t interested unless it is one thing to accomplish with Lady gaga! Your personal stuffs nice. At all times care for it up!

  6. There are some attention-grabbing points in time on this article but I don’t know if I see all of them center to heart. There is some validity however I’ll take maintain opinion till I look into it further. Good article , thanks and we want extra! Added to FeedBurner as effectively

  7. I have been exploring for a little for any high quality articles or weblog posts in this kind of area . Exploring in Yahoo I eventually stumbled upon this web site. Studying this information So i’m satisfied to show that I’ve an incredibly just right uncanny feeling I discovered exactly what I needed. I so much certainly will make certain to do not disregard this site and provides it a look regularly.

Leave a Reply

Your email address will not be published. Required fields are marked *