• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Embedded Software » Multimedia Software Codecs » Multimedia Software Codecs forum » H.264 on dm36x - Adaptive Longterm frame insertion
Share
Multimedia Software Codecs
  • Forum
Options
  • Subscribe via RSS

Forums

H.264 on dm36x - Adaptive Longterm frame insertion

This question is answered
Alex Nancekievill
Posted by Alex Nancekievill
on Oct 26 2011 12:30 PM
Intellectual350 points

The H.264 platinum codecs feature support for "Adaptive Longterm Frame Insertion", see here:

http://processors.wiki.ti.com/index.php/H.264_DM36x_Ver_2.0_Codec#Adaptive_Longterm_Frame_Insertion

 

 I'm attempting to use this feature in a DM368-based system but I'm not sure I'm setting it up correctly. With the feature turned off and a simulated packet loss of 0.1% the decoder behaves as expected. I get a decode error on the frame with the dropped packet and then every frame after that reports extended error code 0x4f "The current picture refers to an already decoded error frame" ...until the next I-frame comes along and stops the error being propagated. All as expected.

 

With the feature enabled the reporting from the decoder looks correct. I still get the initial error from the frame with the dropped packet, then a couple of 0x4f warnings and then they stop. The error propagation appears to have been halted by instructing the encoder to "UseLongTermFrame=1". However the picture looks awful. It looks to me like setting UseLongTermFrame=1 on the encoder immediately corrupts the image. The result is much worse than the original error left to propagate. I'm assuming I'm not setting LongTermFrames correctly, or there's a mismatch between the references used by encode and decode.

 

My settings are;

EnableLongTermFrame = 1;

LongTermRefreshInterval = 30;

UseLongTermFrame is set to 1 whenever the decoder signals an error

SetLongTermFrame = 0; // Do I have to set this explicitly if I have set the refresh interval?

 

I've also tried setting LongTermRefreshInterval = 0 because the user guide says that I frames are automatically counted as long term frames. However this makes no difference.

 

Hope someone can shed some light on the right way to use this feature.

 

Alex 

H264 C6455
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Adithya Banninthaya
    Posted by Adithya Banninthaya
    on Nov 20 2011 22:22 PM
    Verified Answer
    Verified by Alex Nancekievill
    Intellectual1930 points

    Hi Alex,

    It looks like decoder is not getting the correct reference. Are you allocating sufficient number of buffers?

    You can also check with decoder application in the package app/client/test/src/TestappDecoder_ih264_arm926.c. We have tested your stream with this application.

    You can also refer to the link for more about buffer mechanism

    http://www.ti.com/lit/an/sprab88/sprab88.pdf

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Alex Nancekievill
    Posted by Alex Nancekievill
    on Mar 26 2012 08:48 AM
    Intellectual350 points

    Hi Adithya,

    Thanks for your help here. I've marked it as verified because it was our mistake with buffer management that was causing the corruption. The link you provided made it clear what we needed to do to fix.

    However running in universal mode is bad news for us as it has a significant impact on performance. I thought the idea of closed loop was that it could decode anything the TI encoder produced That is clearly not the case if the decoder can't decode long term reference frames with closedloop=1. Please could we raise a bug report/feature request against this?

    Many thanks,

    Alex

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Yashwant Dutt
    Posted by Yashwant Dutt
    on Mar 27 2012 06:59 AM
    Genius15110 points

    Hi Alex,

    We will look into this but please dont expect any near term fix. Closed loop decoder was meant to decode streams of ver 2.0 encoder. We added more features in later version of encoder but the closed loop decoder did not get upgraded.

    regards

    Yashwant

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Alex Nancekievill
    Posted by Alex Nancekievill
    on Mar 27 2012 07:08 AM
    Intellectual350 points

    Hi Yashwant,

    Thanks for the honest assessment. I see that the last release for the decoder was almost a year ago. Shouldn't a new release be due by now?

    Also, is there anything I can do to speed up the universal decoder since I'm not using lots of other features it has? Perhaps by specifying a lower levelIdc in the encoder?

    All the best,

    Alex

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
12
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use