Home | History | Annotate | Download | only in encoder
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2015 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at:
      8  *
      9  * http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  *
     17  *****************************************************************************
     18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 */
     20 
     21 /**
     22 ******************************************************************************
     23 * @file
     24 *  ih264e_cavlc.h
     25 *
     26 * @brief
     27 *  This file contains enumerations, macros and extern declarations of H264
     28 *  cavlc tables
     29 *
     30 * @author
     31 *  ittiam
     32 *
     33 * @remarks
     34 *  none
     35 ******************************************************************************
     36 */
     37 
     38 #ifndef IH264E_CAVLC_H_
     39 #define IH264E_CAVLC_H_
     40 
     41 /*****************************************************************************/
     42 /* Function macro definitions                                                */
     43 /*****************************************************************************/
     44 
     45 /*****************************************************************************/
     46 /* Extern Function Declarations                                              */
     47 /*****************************************************************************/
     48 
     49 /**
     50 *******************************************************************************
     51 *
     52 * @brief
     53 *  This function generates CAVLC coded bit stream for an Intra Slice.
     54 *
     55 * @description
     56 *  The mb syntax layer for intra slices constitutes luma mb mode, luma sub modes
     57 *  (if present), mb qp delta, coded block pattern, chroma mb mode and
     58 *  luma/chroma residue. These syntax elements are written as directed by table
     59 *  7.3.5 of h264 specification.
     60 *
     61 * @param[in] ps_ent_ctxt
     62 *  pointer to entropy context
     63 *
     64 * @returns error code
     65 *
     66 * @remarks none
     67 *
     68 *******************************************************************************
     69 */
     70 IH264E_ERROR_T ih264e_write_islice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt);
     71 
     72 /**
     73 *******************************************************************************
     74 *
     75 * @brief
     76 *  This function generates CAVLC coded bit stream for Inter slices
     77 *
     78 * @description
     79 *  The mb syntax layer for inter slices constitutes luma mb mode, luma sub modes
     80 *  (if present), mb qp delta, coded block pattern, chroma mb mode and
     81 *  luma/chroma residue. These syntax elements are written as directed by table
     82 *  7.3.5 of h264 specification
     83 *
     84 * @param[in] ps_ent_ctxt
     85 *  pointer to entropy context
     86 *
     87 * @returns error code
     88 *
     89 * @remarks none
     90 *
     91 *******************************************************************************
     92 */
     93 IH264E_ERROR_T ih264e_write_pslice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt);
     94 
     95 /**
     96 *******************************************************************************
     97 *
     98 * @brief
     99 *  This function generates CAVLC coded bit stream for Inter(B) slices
    100 *
    101 * @description
    102 *  The mb syntax layer for inter slices constitutes luma mb mode, luma sub modes
    103 *  (if present), mb qp delta, coded block pattern, chroma mb mode and
    104 *  luma/chroma residue. These syntax elements are written as directed by table
    105 *  7.3.5 of h264 specification
    106 *
    107 * @param[in] ps_ent_ctxt
    108 *  pointer to entropy context
    109 *
    110 * @returns error code
    111 *
    112 * @remarks none
    113 *
    114 *******************************************************************************
    115 */
    116 IH264E_ERROR_T ih264e_write_bslice_mb_cavlc(entropy_ctxt_t *ps_ent_ctxt);
    117 
    118 #endif /* IH264E_CAVLC_H_ */
    119