• 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 » [DM8168] Rate-Control Parameter Error
Share
Multimedia Software Codecs
  • Forum
Options
  • Subscribe via RSS

[DM8168] Rate-Control Parameter Error

[DM8168] Rate-Control Parameter Error

This question is answered
Nitish James
Posted by Nitish James
on Dec 14 2011 08:56 AM
Intellectual480 points

Hi,

 We are currently making use of version rel-05_03_00_09. I am getting Rate-Control error as indicated by 0x2020c000. The same configuration worked for previous version of H264 Encoder that we used. Please let me know why this would happen. We are using low-delay configuration, i.e., IPP GOP.

Current H264 Encoder Version: 01.00.04

RC related parameters settings are mentioned below

    /* select the rate control algorithm */
    pEncStaticParams->rateControlParams.rcAlgo = IH264_RATECONTROL_DEFAULT;

    /* Qp Settings for I */
    pEncStaticParams->rateControlParams.qpI          =   OMX_VIDENC_DEFAULT_QP_IFRAME;  // 24
    pEncStaticParams->rateControlParams.qpMaxI  =    OMX_VIDENC_DEFAULT_QPMAX_IFRAME; // 44
    pEncStaticParams->rateControlParams.qpMinI   =     OMX_VIDENC_DEFAULT_QPMIN_IFRAME; // 8
    /* Qp Settings for P */
    pEncStaticParams->rateControlParams.qpP        = OMX_VIDENC_DEFAULT_QP_PFRAME; // 24
    pEncStaticParams->rateControlParams.qpMaxP =      OMX_VIDENC_DEFAULT_QPMAX_PFRAME; // 44
    pEncStaticParams->rateControlParams.qpMinP =         OMX_VIDENC_DEFAULT_QPMIN_PFRAME; // 8
    /* Qp Settings for B */
    pEncStaticParams->rateControlParams.qpOffsetB =          OMX_VIDENC_DEFAULT_QPOFFSET_BFRAME; // 4
    pEncStaticParams->rateControlParams.qpMaxB =         OMX_VIDENC_DEFAULT_QPMAX_BFRAME; // 44

  pEncStaticParams->rateControlParams.qpMinB =         OMX_VIDENC_DEFAULT_QPMIN_BFRAME; //8
    /* Frame Skip */
    pEncStaticParams->rateControlParams.allowFrameSkip = OMX_TRUE;
    /* Settings to remove the High Freq Coefficients */
 
    pEncStaticParams->rateControlParams.removeExpensiveCoeff = OMX_FALSE;
    /* Chroma Qp Settings */
 
    pEncStaticParams->rateControlParams.chromaQPIndexOffset =        OMX_VIDENC_DEFAULT_QPOFFSET_CHROMA;
    /* Settings for the Quality Bias factor between I & P */
    pEncStaticParams->rateControlParams.IPQualityFactor =         IH264_QUALITY_FACTOR_DEFAULT;
    /* Set the Initial HRD Buffer Level; Set as suggested in Codec sample application */
    pEncStaticParams->rateControlParams.initialBufferLevel =      2000000;
    /* Settings for Initial HRD Buffer Size */
    pEncStaticParams->rateControlParams.HRDBufferSize =         pEncStaticParams->rateControlParams.initialBufferLevel;

 /* Reserved Parameters */
    pEncStaticParams->rateControlParams.reservedRC[0] = 0;
    pEncStaticParams->rateControlParams.reservedRC[1] = 0;
    pEncStaticParams->rateControlParams.reservedRC[2] = 0;

 According to SPRABA9, for VTC this should be set to false
    pEncStaticParams->rateControlParams.enablePRC = OMX_FALSE; //TRUE;

Appreciate your quick help on this.

Regards,

Nitish

DM8168 H264 Encoder Rate-Control Issue
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Deepak Poddar
    Posted by Deepak Poddar
    on Dec 14 2011 22:52 PM
    Intellectual1405 points

    Parameters are looking absolutely fine. Since you are using all the default settings , can you try setting rateControlParamPreset as default.

    It should work in either way.

     

    Regards

    Deepak Poddar

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Nitish James
    Posted by Nitish James
    on Dec 18 2011 06:40 AM
    Intellectual480 points

    Hi Deepak,

     We are getting this strange problem again and again, we have tried many combinations.

    We have disabled RateControl all together, but still we are getting 0x2000c000 error. The configurations both static and dynamic parameters used are listed below.

    IH264ENC_Params->videnc2Params
      
       /////Videnc2Parameters
       pEncStaticParams->videnc2Params.size                             =  276 (sizeof IH264ENC_Params)
       pEncStaticParams->videnc2Params.encodingPreset                 =  XDM_USER_DEFINED (3)
       pEncStaticParams->videnc2Params.rateControlPreset             =  IVIDEO_NONE (4}
       pEncStaticParams->videnc2Params.maxHeight                     = OMX_VIDENC_DEFAULT_FRAME_HEIGHT [1920]
       pEncStaticParams->videnc2Params.maxWidth                         = 1080
       pEncStaticParams->videnc2Params.dataEndianness                 = XDM_BYTE [1]
       pEncStaticParams->videnc2Params.maxInterFrameInterval         = [1]
       pEncStaticParams->videnc2Params.inputChromaFormat             = XDM_YUV_420SP [9]
       pEncStaticParams->videnc2Params.inputContentType                 = IVIDEO_PROGRESSIVE;   
       pEncStaticParams->videnc2Params.operatingMode                 = IVIDEO_ENCODE_ONLY;
       pEncStaticParams->videnc2Params.profile                         = IH264_HIGH_PROFILE ;   
       pEncStaticParams->videnc2Params.level                         = OMX_H264VE_DEFAULT_LEVEL;
       pEncStaticParams->videnc2Params.inputDataMode                 = IVIDEO_ENTIREFRAME;
       pEncStaticParams->videnc2Params.outputDataMode                 = IVIDEO_ENTIREFRAME;
       pEncStaticParams->videnc2Params.numInputDataUnits             = 1;
       pEncStaticParams->videnc2Params.numOutputDataUnits             = 1;
       pEncStaticParams->maxIntraFrameInterval                         = 0x7fff;
       pEncStaticParams->videnc2Params.metadataType[0]                 = IVIDEO_METADATAPLANE_NONE;
       pEncStaticParams->videnc2Params.metadataType[1]                 = IVIDEO_METADATAPLANE_NONE;
       pEncStaticParams->videnc2Params.metadataType[2]                 = IVIDEO_METADATAPLANE_NONE;
       pEncStaticParams->videnc2Params.maxBitRate                     = -1;
       pEncStaticParams->videnc2Params.minBitRate                     = 0;

       /////////  Rate control parameters
      
       pEncStaticParams->rateControlParams.rateControlParamsPreset  = IH264_RATECONTROLPARAMS_DEFAULT;
       pEncStaticParams->rateControlParams.scalingMatrixPreset      = IH264_SCALINGMATRIX_DEFAULT;

       pEncStaticParams->rateControlParams.rcAlgo                    = IH264_RATECONTROL_DEFAULT;
       pEncStaticParams->rateControlParams.qpI                        = OMX_VIDENC_DEFAULT_QP_IFRAME; [25 ]
       pEncStaticParams->rateControlParams.qpMaxI                    = OMX_VIDENC_DEFAULT_QPMAX_IFRAME; [51]
       pEncStaticParams->rateControlParams.qpMinI                    = OMX_VIDENC_DEFAULT_QPMIN_IFRAME; [0 ]
       pEncStaticParams->rateControlParams.qpP                        = OMX_VIDENC_DEFAULT_QP_PFRAME;    [25 ]
       pEncStaticParams->rateControlParams.qpMaxP                    = OMX_VIDENC_DEFAULT_QPMAX_PFRAME; [51]
       pEncStaticParams->rateControlParams.qpMinP                    = OMX_VIDENC_DEFAULT_QPMIN_PFRAME; [0 ]
       pEncStaticParams->rateControlParams.qpOffsetB                = OMX_VIDENC_DEFAULT_QPOFFSET_BFRAME; [ 4]
       pEncStaticParams->rateControlParams.qpMaxB                    = OMX_VIDENC_DEFAULT_QPMAX_BFRAME;    [51 ]
       pEncStaticParams->rateControlParams.qpMinB                    = OMX_VIDENC_DEFAULT_QPMIN_BFRAME;    [0 ]
       pEncStaticParams->rateControlParams.allowFrameSkip            = OMX_FALSE;
       pEncStaticParams->rateControlParams.removeExpensiveCoeff        = OMX_FALSE;
       pEncStaticParams->rateControlParams.chromaQPIndexOffset        = OMX_VIDENC_DEFAULT_QPOFFSET_CHROMA; [0]
       pEncStaticParams->rateControlParams.IPQualityFactor            = IH264_QUALITY_FACTOR_DEFAULT;
       pEncStaticParams->rateControlParams.initialBufferLevel        = 1250000 ;//12000000;
       pEncStaticParams->rateControlParams.HRDBufferSize            = pEncStaticParams->rateControlParams.initialBufferLevel * 2;
       pEncStaticParams->rateControlParams.reservedRC[0]            = 0;
       pEncStaticParams->rateControlParams.reservedRC[1]            = 0;
       pEncStaticParams->rateControlParams.reservedRC[2]            = 0;

       ///// Inter coding parameters
       pEncStaticParams->interCodingParams.interCodingPreset        = IH264_INTERCODING_USERDEFINED ;// IH264_INTERCODING_DEFAULT;
       pEncStaticParams->interCodingParams.searchRangeHorP            = 144; //OMX_VIDENC_DEFAULT_HORSEARCH_PFRAME;
       pEncStaticParams->interCodingParams.searchRangeVerP            = 32; //OMX_VIDENC_DEFAULT_VERSEARCH_PFRAME;   
       pEncStaticParams->interCodingParams.searchRangeHorB            = 144 ;//OMX_VIDENC_DEFAULT_HORSEARCH_BFRAME;
       pEncStaticParams->interCodingParams.searchRangeVerB            = 16;//OMX_VIDENC_DEFAULT_VERSEARCH_BFRAME;
       pEncStaticParams->interCodingParams.interCodingBias            = IH264_BIASFACTOR_DEFAULT;
       pEncStaticParams->interCodingParams.skipMVCodingBias            = IH264_BIASFACTOR_DEFAULT;
       pEncStaticParams->interCodingParams.minBlockSizeP            = IH264_BLOCKSIZE_8x8;// IH264_BLOCKSIZE_DEFAULT;
       pEncStaticParams->interCodingParams.minBlockSizeB            = IH264_BLOCKSIZE_8x8;// IH264_BLOCKSIZE_DEFAULT;

       /////// Intra coding parameters
       pEncStaticParams->intraCodingParams.intraCodingPreset        = IH264_INTRACODING_USERDEFINED; // IH264_INTRACODING_DEFAULT;
       pEncStaticParams->intraCodingParams.lumaIntra4x4Enable        = 0;
       pEncStaticParams->intraCodingParams.lumaIntra8x8Enable        = 0x0FF;
       pEncStaticParams->intraCodingParams.lumaIntra16x16Enable        = 0xF;
       pEncStaticParams->intraCodingParams.chromaIntra8x8Enable        = 0xF;
       pEncStaticParams->intraCodingParams.chromaComponentEnable    = IH264_CHROMA_COMPONENT_DEFAULT;
       pEncStaticParams->intraCodingParams.intraRefreshMethod        = IH264_INTRAREFRESH_DEFAULT;
       pEncStaticParams->intraCodingParams.intraRefreshRate            = 0;
       pEncStaticParams->intraCodingParams.constrainedIntraPredEnable = 0;

       ////// Nal unit control parameters   
       pEncStaticParams->nalUnitControlParams.naluControlPreset                    = IH264_NALU_CONTROL_DEFAULT;
       pEncStaticParams->nalUnitControlParams.naluPresentMaskStartOfSequence    = 0x01A0;
       pEncStaticParams->nalUnitControlParams.naluPresentMaskIDRPicture            = 0x01A0;
       pEncStaticParams->nalUnitControlParams.naluPresentMaskIntraPicture        = 0x0002;
       pEncStaticParams->nalUnitControlParams.naluPresentMaskNonIntraPicture    = 0x0002;
       pEncStaticParams->nalUnitControlParams.naluPresentMaskEndOfSequence        = 0x0;
       
        //// Slice coding parameters
        pEncStaticParams->sliceCodingParams.sliceCodingPreset                    = IH264_SLICECODING_USERDEFINED; //IH264_SLICECODING_DEFAULT;
        pEncStaticParams->sliceCodingParams.sliceMode                            =  IH264_SLICEMODE_MBUNIT;//IH264_SLICEMODE_DEFAULT;
        pEncStaticParams->sliceCodingParams.sliceUnitSize                        = (8162/3); //IH264_SLICEMODE_DEFAULT;
        pEncStaticParams->sliceCodingParams.sliceStartOffset[0]                    = 0;
        pEncStaticParams->sliceCodingParams.sliceStartOffset[1]                    = 0;
        pEncStaticParams->sliceCodingParams.sliceStartOffset[2]                    = 0;
        pEncStaticParams->sliceCodingParams.streamFormat                        = IH264_STREAM_FORMAT_DEFAULT;

        ///// Loop filter parameters
        pEncStaticParams->loopFilterParams.loopfilterPreset                        = IH264_LOOPFILTER_DEFAULT;
        pEncStaticParams->loopFilterParams.loopfilterDisableIDC                    = IH264_DISABLE_FILTER_DEFAULT;
        pEncStaticParams->loopFilterParams.filterOffsetA                        = 0;
        pEncStaticParams->loopFilterParams.filterOffsetB                        = 0;

        ///// vUI Coding parameters
        pEncStaticParams->vuiCodingParams.vuiCodingPreset                        = IH264_VUICODING_DEFAULT;
        pEncStaticParams->vuiCodingParams.aspectRatioInfoPresentFlag            = 0;
        pEncStaticParams->vuiCodingParams.aspectRatioIdc                        = 0;
        pEncStaticParams->vuiCodingParams.videoSignalTypePresentFlag            = 0;
        pEncStaticParams->vuiCodingParams.videoFormat                            = IH264ENC_VIDEOFORMAT_NTSC;
        pEncStaticParams->vuiCodingParams.videoFullRangeFlag                    = 0;
        pEncStaticParams->vuiCodingParams.timingInfoPresentFlag                    = 0;

        ////////////  Stereo Info parameters
        pEncStaticParams->stereoInfoParams.stereoInfoPreset                        = IH264_STEREOINFO_DISABLE;
        pEncStaticParams->stereoInfoParams.topFieldIsLeftViewFlag                = 0;
        pEncStaticParams->stereoInfoParams.viewSelfContainedFlag                = 0;

        ///  FramePAcking SEI parameters
        pEncStaticParams->framePackingSEIParams.framePackingPreset                = 0;

        ////// FMO coding parameters
        pEncStaticParams->fmoCodingParams.fmoCodingPreset                        = IH264_FMOCODING_DEFAULT;
        pEncStaticParams->fmoCodingParams.numSliceGroups                        = 1;
        pEncStaticParams->fmoCodingParams.sliceGroupMapType                        = IH264_SLICE_GRP_MAP_DEFAULT;
        pEncStaticParams->fmoCodingParams.sliceGroupChangeDirectionFlag            = IH264ENC_SLICEGROUP_CHANGE_DIRECTION_DEFAULT;
        pEncStaticParams->fmoCodingParams.sliceGroupChangeRate                    = 0;
        pEncStaticParams->fmoCodingParams.sliceGroupChangeCycle                    = 0;
        pEncStaticParams->fmoCodingParams.sliceGroupParams[0]                    = 0;

       pEncStaticParams->debugTraceLevel                                        = 0;
       pEncStaticParams->pConstantMemory                                        = NULL;
       pEncStaticParams->gopStructure                                            = IH264ENC_GOPSTRUCTURE_UNIFORM ;// IH264ENC_GOPSTRUCTURE_NONUNIFORM;
       pEncStaticParams->entropyCodingMode                                        = IH264_ENTROPYCODING_CABAC;
       pEncStaticParams->transformBlockSize                                        = IH264_TRANSFORM_8x8;
       pEncStaticParams->log2MaxFNumMinus4                                        = 12;
       pEncStaticParams->picOrderCountType                                        = IH264_POC_TYPE_0;
       pEncStaticParams->IDRFrameInterval                                        = 0;
       pEncStaticParams->lastNFramesToLog                                        = 0;
       pEncStaticParams->enableAnalyticinfo                                        = 0 ;
       pEncStaticParams->enableGMVSei                                            = 0 ;
       pEncStaticParams->constraintSetFlags                                        = 0;
       pEncStaticParams->enableRCDO                                                = 0;
       pEncStaticParams->enableLongTermRefFrame                                    = 0 ;
       pEncStaticParams->reservedParams[0]                                        = 0;
       pEncStaticParams->reservedParams[1]                                        = 0;
       pEncStaticParams->reservedParams[2]                                        = 0;

        //////////////////////////////////// Dynamic parameters//////////////////////

        /* Size */
        pEncDynParams->videnc2DynamicParams.size                        = sizeof(IH264ENC_DynamicParams);
        pEncDynParams->videnc2DynamicParams.inputHeight                    = 1080;
        pEncDynParams->videnc2DynamicParams.inputWidth                    = 1920;
        pEncDynParams->videnc2DynamicParams.refFrameRate                = 30000 ;// OMX_VIDENC_DEFAULT_FRAME_RATE;
        pEncDynParams->videnc2DynamicParams.targetFrameRate                = 30000 ;//OMX_VIDENC_DEFAULT_FRAME_RATE;
        pEncDynParams->videnc2DynamicParams.targetBitRate                = 2000000;
        pEncDynParams->videnc2DynamicParams.intraFrameInterval            = 90;
        pEncDynParams->videnc2DynamicParams.generateHeader                = XDM_ENCODE_AU [ 0 ];
        pEncDynParams->videnc2DynamicParams.captureWidth                = 1920;
        pEncDynParams->videnc2DynamicParams.forceFrame                    = IVIDEO_NA_FRAME; [ -1 ]
        pEncDynParams->videnc2DynamicParams.interFrameInterval            = OMX_VIDENC_DEFAULT_INTERFRAME_INTERVAL; [ 1 ]
        pEncDynParams->videnc2DynamicParams.mvAccuracy                    = IVIDENC2_MOTIONVECTOR_QUARTERPEL; [2 ]
        pEncDynParams->videnc2DynamicParams.sampleAspectRatioHeight        = OMX_VIDENC_DEFAULT_ASPECT_RATIO_HEIGHT; [1 ]
        pEncDynParams->videnc2DynamicParams.sampleAspectRatioWidth        =  OMX_VIDENC_DEFAULT_ASPECT_RATIO_WIDTH; [1 ]
        pEncDynParams->videnc2DynamicParams.ignoreOutbufSizeFlag        = XDAS_TRUE; //XDAS_FALSE;
        pEncDynParams->videnc2DynamicParams.putDataFxn                    = NULL;
        pEncDynParams)->videnc2DynamicParams.putDataHandle                = 0;
        pEncDynParams)->videnc2DynamicParams.getDataFxn                    = NULL;
        pEncDynParams)->videnc2DynamicParams.getDataHandle                = 0;

        pEncDynParams)->rateControlParams.initialBufferLevel            = 1250000;
        pEncDynParams)->rateControlParams.HRDBufferSize                    = 2500000;
        pEncDynParams)->rateControlParams.rateControlParamsPreset        =  IH264_RATECONTROLPARAMS_DEFAULT; [ 0]
        pEncDynParams)->rateControlParams.qpI                            = OMX_VIDENC_DEFAULT_QP_IFRAME;     [25]
        pEncDynParams)->rateControlParams.qpMaxI                        = OMX_VIDENC_DEFAULT_QPMAX_IFRAME;  [51]
        pEncDynParams)->rateControlParams.qpMinI                        = OMX_VIDENC_DEFAULT_QPMIN_IFRAME;  [0]
        pEncDynParams)->rateControlParams.qpP                            = OMX_VIDENC_DEFAULT_QP_PFRAME;     [25]
        pEncDynParams)->rateControlParams.qpMaxP                        = OMX_VIDENC_DEFAULT_QPMAX_PFRAME;  [51 ]
        pEncDynParams)->rateControlParams.qpMinP                        = OMX_VIDENC_DEFAULT_QPMIN_PFRAME;  [0 ]
        pEncDynParams)->rateControlParams.qpOffsetB                        = OMX_VIDENC_DEFAULT_QPOFFSET_BFRAME; [4 ]
        pEncDynParams)->rateControlParams.qpMaxB                        = OMX_VIDENC_DEFAULT_QPMAX_BFRAME;    [51 ]
        pEncDynParams)->rateControlParams.qpMinB                        = OMX_VIDENC_DEFAULT_QPMIN_BFRAME;    [ 0]
        pEncDynParams)->rateControlParams.allowFrameSkip                = OMX_FALSE;
        pEncDynParams)->rateControlParams.removeExpensiveCoeff            = OMX_FALSE;
        pEncDynParams)->rateControlParams.HRDBufferSize                    = 2500000;
        pEncDynParams)->rateControlParams.reservedRC[0]                    = 0;
        pEncDynParams)->rateControlParams.reservedRC[1]                    = 0;
        pEncDynParams)->rateControlParams.reservedRC[2]                    = 0;
       
        pEncDynParams)->interCodingParams.interCodingPreset                =    1 ;
        pEncDynParams)->interCodingParams.searchRangeHorP                =   144;
        pEncDynParams)->interCodingParams.searchRangeVerP                =   32;
        pEncDynParams)->interCodingParams.searchRangeHorB                =   144;
        pEncDynParams)->interCodingParams.searchRangeVerB                =    16;
        pEncDynParams)->interCodingParams.interCodingBias                = IH264_BIASFACTOR_DEFAULT;
        pEncDynParams)->interCodingParams.skipMVCodingBias                = IH264_BIASFACTOR_DEFAULT;
        pEncDynParams)->interCodingParams.minBlockSizeP                    =    1;
        pEncDynParams)->interCodingParams.minBlockSizeB                    =    1;
       
        pEncDynParams)->sliceCodingParams.sliceCodingPreset                =  1;
        pEncDynParams)->sliceCodingParams.sliceMode                        =  1;
        pEncDynParams)->sliceCodingParams.sliceUnitSize                    =  2720;
        pEncDynParams)->sliceCodingParams.sliceStartOffset[0]            = 0;
        pEncDynParams)->sliceCodingParams.sliceStartOffset[1]            = 0;
        pEncDynParams)->sliceCodingParams.sliceStartOffset[2]            = 0;

        /* Set the   XDAS_Int32                   sliceGroupChangeCycle */
        pEncDynParams)->sliceGroupChangeCycle = 0;
        pEncDynParams)->searchCenter.x =        0;
        pEncDynParams)->searchCenter.y =        0;
        pEncDynParams)->reservedDynParams[0] = 0;
        pEncDynParams)->reservedDynParams[1] = 0;
        pEncDynParams)->reservedDynParams[2] = 0;
        pEncDynParams)->reservedDynParams[3] = 0;

    Do you see any issue with this?

    Thanks,
    Nitish

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Deepak Poddar
    Posted by Deepak Poddar
    on Dec 19 2011 08:28 AM
    Verified Answer
    Verified by Yashwant Dutt
    Intellectual1405 points

    As you are saying that you are using the version 01.00.04.00,

     

    then you need to set  following parameters also, but I am not seeing in your log

      XDAS_Int8                        numTemporalLayer  ;

      XDAS_Int8                        referencePicMarking   ;

    please use default of encodingPreset, and with GET_STATUS XDM control call, get the value of create & dynamic structure and use that as base structure and then modify whatever you want to change on top of that. please also see the error bit toget idea which portion of structure has wrong settings.
    if problem doesnt get solved then share the memory dump of create & dynamic structure.
    Regards
    Deepak Poddar
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
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