From ac305e761e0c2815ff0f68b467e0647eebeb9585 Mon Sep 17 00:00:00 2001 From: Frank Galligan Date: Sun, 1 Oct 2017 15:48:32 -0700 Subject: [PATCH] Added variables section to spec. This is associated with #134 --- docs/spec/variable.descriptions.md | 271 ++++++++++++++++++++++++++++- 1 file changed, 267 insertions(+), 4 deletions(-) diff --git a/docs/spec/variable.descriptions.md b/docs/spec/variable.descriptions.md index f18d325..5224f10 100644 --- a/docs/spec/variable.descriptions.md +++ b/docs/spec/variable.descriptions.md @@ -1,8 +1,271 @@ ## Descriptions +### Constants + +* Mesh encoding methods + * 0: MESH_SEQUENTIAL_ENCODING + * 1: MESH_EDGEBREAKER_ENCODING + +* Sequential attribute encoding methods + * 0: SEQUENTIAL_ATTRIBUTE_ENCODER_GENERIC + * 1: SEQUENTIAL_ATTRIBUTE_ENCODER_INTEGER + * 2: SEQUENTIAL_ATTRIBUTE_ENCODER_QUANTIZATION + * 3: SEQUENTIAL_ATTRIBUTE_ENCODER_NORMALS + +* Prediction encoding methods + * -2: PREDICTION_NONE + * 0: PREDICTION_DIFFERENCE + * 1: MESH_PREDICTION_PARALLELOGRAM + * 4: MESH_PREDICTION_CONSTRAINED_MULTI_PARALLELOGRAM + * 5: MESH_PREDICTION_TEX_COORDS_PORTABLE + * 6: MESH_PREDICTION_GEOMETRIC_NORMAL + +* Prediction scheme transform methods + * 1: PREDICTION_TRANSFORM_WRAP + * 3: PREDICTION_TRANSFORM_NORMAL_OCTAHEDRON_CANONICALIZED + +* Mesh traversal methods + * 0: MESH_TRAVERSAL_DEPTH_FIRST + * 1: MESH_TRAVERSAL_PREDICTION_DEGREE + +* Mesh attribute encoding methods + * 0: MESH_VERTEX_ATTRIBUTE + * 1: MESH_CORNER_ATTRIBUTE + +* EdgeBreaker encoding methods + * 0: STANDARD_EDGEBREAKER + * 1: PREDICTIVE_EDGEBREAKER + * 2: VALENCE_EDGEBREAKER + +* EdgeBreaker constants + * -1: kInvalidCornerIndex + * 0: LEFT_FACE_EDGE + * 1: RIGHT_FACE_EDGE + * 2: kTexCoordsNumComponents + * 4: kMaxNumParallelograms + * 3: kMaxPriority + +* EdgeBreaker bit pattern constants + * 0: TOPOLOGY_C + * 1: TOPOLOGY_S + * 3: TOPOLOGY_L + * 5: TOPOLOGY_R + * 7: TOPOLOGY_E + +* Valence EdgeBreaker constants + * 2: MIN_VALENCE + * 7: MAX_VALENCE + * 6: NUM_UNIQUE_VALENCES + +* ANS constants + * 256: rabs_ans_p8_precision + * 1024: rabs_ans_p10_precision + * 4096: rabs_l_base + * 256: IO_BASE + * 4096: L_RANS_BASE + + + ### Variables - * edgebreaker_traversal_type - * 0: MeshEdgeBreakerTraversalDecoder - * 1: MeshEdgeBreakerTraversalPredictiveDecoder - * 2: MeshEdgeBreakerTraversalValenceDecoder +#### Header +* draco_string + * Must equal "DRACO" +* major_version + * bitstream major version number +* minor_version + * bitstream minor version number +* encoder_type + * 0: POINT_CLOUD + * 1: TRIANGULAR_MESH +* encoder_method + * 0: MESH_SEQUENTIAL_ENCODING + * 1: MESH_EDGEBREAKER_ENCODING +* flags + +#### Metadata +* num_att_metadata + * Attribute metadata count +* att_metadata_id + * Array of attribute metadata ids +* att_metadata + * Array of attribute metadata +* file_metadata + * Global metadata + +#### Sequential Encoding +* num_points + * Number of encoded points +* connectivity_method + +#### EdgeBreaker Encoding +* edgebreaker_traversal_type + * 0: MeshEdgeBreakerTraversalDecoder + * 1: MeshEdgeBreakerTraversalPredictiveDecoder + * 2: MeshEdgeBreakerTraversalValenceDecoder +* num_new_vertices + * Number of new vertices +* num_encoded_vertices + * Number of encoded vertices +* num_faces + * Number of encoded faces +* num_attribute_data + * Number of encoded attributes +* num_encoded_symbols + * Number of encoded EdgeBreaker symbols +* num_encoded_split_symbols + * Number of encoded EdgeBreaker split symbols +* encoded_connectivity_size + * Size of encoded connectivity data in bytes +* num_topologoy_splits +* source_id_delta + * Array of delta encoded source symbol ids +* split_id_delta + * Array of delta encoded split symbol ids +* split_edge_bit +* source_edge_bit + * Array of source edge types + * 0: LEFT_FACE_EDGE + * 1: RIGHT_FACE_EDGE +* source_symbol_id + * Array of source symbol ids +* split_symbol_id + * Array of split symbol ids +* last_symbol_ + * Last EdgeBreaker symbol decoded +* last_vert_added + * Id of the last vertex decoded +* bit_symbol_buffer + * Standard EdgeBreaker encoded symbol buffer + +#### EdgeBreaker Traversal +* eb_symbol_buffer_size +* eb_symbol_buffer + * EdgeBreaker encoded symbol data +* eb_start_face_buffer_size +* eb_start_face_buffer + * EdgeBreaker encoded face configuration data +* attribute_connectivity_decoders_prob_zero + * Array of encoded attribute probabilities +* attribute_connectivity_decoders_size + * Array of attribute connectivity size +* attribute_connectivity_decoders_buffer + * Array of attribute connectivity data + +#### EdgeBreaker Valence Traversal +* eb_num_split_symbols +* eb_mode +* ebv_context_counters + * Array of number of context symbols +* ebv_context_symbols + * Array of encoded context symbol data +* active_context_ + * Index to the current valence +* vertex_valences_ + * Array of current vertices valences + +#### Attribute Encoding +* num_attributes_decoders +* att_dec_data_id + * Array of attribute decoder ids +* att_dec_decoder_type + * Array of attribute decoder types + * 0: MESH_VERTEX_ATTRIBUTE + * 1: MESH_CORNER_ATTRIBUTE +* att_dec_traversal_method + * Array of attribute traversal methods + * 0: MESH_TRAVERSAL_DEPTH_FIRST + * 1: MESH_TRAVERSAL_PREDICTION_DEGREE +* att_dec_num_values_to_decode + * Number of values to decode per attribute +* att_dec_num_attributes + * Array of number of attributes encoded per attribute type +* att_dec_att_type +* att_dec_data_type + * Attribute's data type +* att_dec_num_components + * Attribute's component count +* att_dec_normalized +* att_dec_unique_id + * Attribute's unique encoded id +* seq_att_dec_decoder_type + * Array of attribute encoding type + * 0: SEQUENTIAL_ATTRIBUTE_ENCODER_GENERIC + * 1: SEQUENTIAL_ATTRIBUTE_ENCODER_INTEGER + * 2: SEQUENTIAL_ATTRIBUTE_ENCODER_QUANTIZATION + * 3: SEQUENTIAL_ATTRIBUTE_ENCODER_NORMALS +* seq_att_dec_prediction_scheme + * Array of attribute prediction scheme method + * -2: PREDICTION_NONE + * 0: PREDICTION_DIFFERENCE + * 1: MESH_PREDICTION_PARALLELOGRAM + * 4: MESH_PREDICTION_CONSTRAINED_MULTI_PARALLELOGRAM + * 5: MESH_PREDICTION_TEX_COORDS_PORTABLE + * 6: MESH_PREDICTION_GEOMETRIC_NORMAL +* seq_att_dec_prediction_transform_type + * Array of attribute prediction transform method + * 1: PREDICTION_TRANSFORM_WRAP + * 3: PREDICTION_TRANSFORM_NORMAL_OCTAHEDRON_CANONICALIZED +* seq_int_att_dec_compressed +* pred_cons_multi_is_cease_edge + * Array for multi parallelogram prediction signifying if the edge is the last edge +* pred_tex_coords_orientaitons + * Array signifying orientation for the texture coordinate prediction +* pred_trasnform_wrap_min + * Array of minimum clamp values used by the wrap transform +* pred_trasnform_wrap_max + * Array of maximum clamp values used by the wrap transform +* pred_trasnform_normal_max_q_val + * Maximum quantization array used by the normal transform +* pred_transform_normal_flip_normal_bits + * Array of flags used by the normal transform +* seq_int_att_dec_decoded_values + * Array of attribute decoded symbols +* seq_int_att_dec_symbols_to_signed_ints + * Array of decoded symbols converted to signed ints +* seq_int_att_dec_original_values + * Array containing the attribute's original quantized values +* seq_int_att_dec_dequantized_values + * Array containing the attribute's original values +* quantized_data_min_values + * Array of minimum quantization values +* quantized_data_max_value_df + * Array of quantization range +* quantized_data_quantization_bits + * Array of number of quantization bits + +#### Attribute Traversal +* curr_att_dec + * Current attribute decoder type +* curr_att + * Current attribute within a decoder type +* vertex_visited_point_ids + * Array of the last vertex visited per attribute +* att_connectivity_seam_opp +* att_connectivity_seam_src +* att_connectivity_seam_dest +* corner_to_point_map +* is_edge_on_seam_ + * Array of bools signifying if the corner's opposite edge is on a seam +* encoded_attribute_value_index_to_corner_map + * Array for storing the corner ids in the order their associated attribute entries were encoded +* vertex_to_encoded_attribute_value_index_map + * Array for storing encoding order of attribute entries for each vertex +* indices_map_ +* prediction_rans_prob_zero + * Current rans zero probability +* prediction_rans_data_size + * Current size of rans encoded data +* tex_coords_num_orientations + * Current number of orientations for encoded Texture data +* traversal_stacks_ + * Array of available corners +* best_priority_ + * Current best available priority +* prediction_degree_ + * Array of current degree prediction for each vertex +* constrained_multi_num_flags + + + +