/*****************************************************************************
- * set.h: h264 encoder
+ * set.h: quantization init
*****************************************************************************
- * Copyright (C) 2003-2008 x264 project
+ * Copyright (C) 2003-2012 x264 project
*
* Authors: Loren Merritt <lorenm@u.washington.edu>
* Laurent Aimar <fenrir@via.ecp.fr>
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
+ *
+ * This program is also available under a commercial proprietary license.
+ * For more information, contact us at licensing@x264.com.
*****************************************************************************/
#ifndef X264_SET_H
{
PROFILE_BASELINE = 66,
PROFILE_MAIN = 77,
- PROFILE_EXTENTED = 88,
+ PROFILE_EXTENDED = 88,
PROFILE_HIGH = 100,
PROFILE_HIGH10 = 110,
PROFILE_HIGH422 = 122,
- PROFILE_HIGH444 = 144
+ PROFILE_HIGH444_PREDICTIVE = 244,
+};
+
+enum chroma_format_e
+{
+ CHROMA_400 = 0,
+ CHROMA_420 = 1,
+ CHROMA_422 = 2,
+ CHROMA_444 = 3,
};
enum cqm4_e
enum cqm8_e
{
CQM_8IY = 0,
- CQM_8PY = 1
+ CQM_8PY = 1,
+ CQM_8IC = 2,
+ CQM_8PC = 3,
};
typedef struct
int b_constraint_set0;
int b_constraint_set1;
int b_constraint_set2;
+ int b_constraint_set3;
int i_log2_max_frame_num;
int i_poc_type;
/* poc 0 */
int i_log2_max_poc_lsb;
- /* poc 1 */
- int b_delta_pic_order_always_zero;
- int i_offset_for_non_ref_pic;
- int i_offset_for_top_to_bottom_field;
- int i_num_ref_frames_in_poc_cycle;
- int i_offset_for_ref_frame[256];
int i_num_ref_frames;
int b_gaps_in_frame_num_value_allowed;
int i_chroma_loc_bottom;
int b_timing_info_present;
- int i_num_units_in_tick;
- int i_time_scale;
+ uint32_t i_num_units_in_tick;
+ uint32_t i_time_scale;
int b_fixed_frame_rate;
+ int b_nal_hrd_parameters_present;
+ int b_vcl_hrd_parameters_present;
+
+ struct
+ {
+ int i_cpb_cnt;
+ int i_bit_rate_scale;
+ int i_cpb_size_scale;
+ int i_bit_rate_value;
+ int i_cpb_size_value;
+ int i_bit_rate_unscaled;
+ int i_cpb_size_unscaled;
+ int b_cbr_hrd;
+
+ int i_initial_cpb_removal_delay_length;
+ int i_cpb_removal_delay_length;
+ int i_dpb_output_delay_length;
+ int i_time_offset_length;
+ } hrd;
+
+ int b_pic_struct_present;
int b_bitstream_restriction;
int b_motion_vectors_over_pic_boundaries;
int i_max_bytes_per_pic_denom;
} vui;
int b_qpprime_y_zero_transform_bypass;
+ int i_chroma_format_idc;
} x264_sps_t;
int b_pic_order;
int i_num_slice_groups;
- int i_num_ref_idx_l0_active;
- int i_num_ref_idx_l1_active;
+ int i_num_ref_idx_l0_default_active;
+ int i_num_ref_idx_l1_default_active;
int b_weighted_pred;
int b_weighted_bipred;
int b_transform_8x8_mode;
int i_cqm_preset;
- const uint8_t *scaling_list[6]; /* could be 8, but we don't allow separate Cb/Cr lists */
+ const uint8_t *scaling_list[8]; /* could be 12, but we don't allow separate Cb/Cr lists */
} x264_pps_t;
16,16,16,16,16,16,16,16,
16,16,16,16,16,16,16,16
};
-static const uint8_t * const x264_cqm_jvt[6] =
+static const uint8_t * const x264_cqm_jvt[8] =
{
x264_cqm_jvt4i, x264_cqm_jvt4p,
x264_cqm_jvt4i, x264_cqm_jvt4p,
+ x264_cqm_jvt8i, x264_cqm_jvt8p,
x264_cqm_jvt8i, x264_cqm_jvt8p
};