2013-09-19 07:35:34 +00:00
|
|
|
#ifndef NAL_H_
|
|
|
|
#define NAL_H_
|
2014-01-24 10:37:15 +00:00
|
|
|
/*****************************************************************************
|
|
|
|
* This file is part of Kvazaar HEVC encoder.
|
2014-02-21 13:00:20 +00:00
|
|
|
*
|
2015-02-23 11:18:48 +00:00
|
|
|
* Copyright (C) 2013-2015 Tampere University of Technology and others (see
|
2014-01-24 10:37:15 +00:00
|
|
|
* COPYING file).
|
|
|
|
*
|
2015-02-23 11:18:48 +00:00
|
|
|
* Kvazaar is free software: you can redistribute it and/or modify it under
|
|
|
|
* the terms of the GNU Lesser General Public License as published by the
|
|
|
|
* Free Software Foundation; either version 2.1 of the License, or (at your
|
|
|
|
* option) any later version.
|
2014-01-24 10:37:15 +00:00
|
|
|
*
|
2015-02-23 11:18:48 +00:00
|
|
|
* Kvazaar is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
|
|
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
|
|
|
* more details.
|
2014-01-24 10:37:15 +00:00
|
|
|
*
|
2015-02-23 11:18:48 +00:00
|
|
|
* You should have received a copy of the GNU General Public License along
|
|
|
|
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
|
2014-01-24 10:37:15 +00:00
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
/*
|
2013-09-18 14:29:30 +00:00
|
|
|
* \file
|
|
|
|
* \brief Network Abstraction Layer (NAL) messages.
|
2012-06-05 12:38:54 +00:00
|
|
|
*/
|
|
|
|
|
2013-09-18 09:16:03 +00:00
|
|
|
#include "global.h"
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
2014-06-05 12:54:58 +00:00
|
|
|
#include "image.h"
|
2014-04-17 04:55:35 +00:00
|
|
|
#include "bitstream.h"
|
2013-09-18 09:16:03 +00:00
|
|
|
|
|
|
|
|
2013-09-19 13:03:02 +00:00
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// TYPES
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief NAL unit type codes.
|
2014-02-21 13:00:20 +00:00
|
|
|
*
|
2013-09-09 07:58:21 +00:00
|
|
|
* These are the nal_unit_type codes from Table 7-1 ITU-T H.265 v1.0.
|
|
|
|
* The type codes have been prefixed with "NAL_".
|
|
|
|
*/
|
|
|
|
enum {
|
|
|
|
NAL_TRAIL_N = 0,
|
|
|
|
NAL_TRAIL_R = 1,
|
2014-02-21 13:00:20 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
NAL_TSA_N = 2,
|
|
|
|
NAL_TSA_R = 3,
|
2014-02-21 13:00:20 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
NAL_STSA_N = 4,
|
|
|
|
NAL_STSA_R = 5,
|
|
|
|
|
|
|
|
NAL_RADL_N = 6,
|
|
|
|
NAL_RADL_R = 7,
|
|
|
|
|
|
|
|
NAL_RASL_N = 8,
|
|
|
|
NAL_RASL_R = 9,
|
|
|
|
|
|
|
|
// Reserved RSV_VCL_ N/R 10-15
|
|
|
|
|
|
|
|
NAL_BLA_W_LP = 16,
|
|
|
|
NAL_BLA_W_RADL = 17,
|
|
|
|
NAL_BLA_N_LP = 18,
|
|
|
|
|
|
|
|
NAL_IDR_W_RADL = 19,
|
|
|
|
NAL_IDR_N_LP = 20,
|
|
|
|
|
|
|
|
NAL_CRA_NUT = 21,
|
|
|
|
|
|
|
|
// Reserved RSV_IRAP_VCL 22-23
|
|
|
|
NAL_RSV_IRAP_VCL23 = 23,
|
2013-09-03 14:55:36 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
// Reserved RSV_VCL 24-31
|
2014-02-21 13:00:20 +00:00
|
|
|
|
2013-09-09 08:04:09 +00:00
|
|
|
NAL_VPS_NUT = 32,
|
|
|
|
NAL_SPS_NUT = 33,
|
|
|
|
NAL_PPS_NUT = 34,
|
2013-09-03 14:55:36 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
AUD_NUT = 35,
|
|
|
|
EOS_NUT = 36,
|
|
|
|
EOB_NUT = 37,
|
|
|
|
FD_NUT = 38,
|
2013-09-03 14:55:36 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
PREFIX_SEI_NUT = 39,
|
|
|
|
NAL_SUFFIT_SEI_NUT = 40,
|
2013-09-03 14:55:36 +00:00
|
|
|
|
2013-09-09 07:58:21 +00:00
|
|
|
// Reserved RSV_NVCL 41-47
|
|
|
|
// Unspecified UNSPEC 48-63
|
2013-09-03 14:55:36 +00:00
|
|
|
};
|
2012-06-05 12:38:54 +00:00
|
|
|
|
2013-09-19 13:03:02 +00:00
|
|
|
#define SEI_HASH_MAX_LENGTH 4
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
// FUNCTIONS
|
2015-03-04 11:20:18 +00:00
|
|
|
void nal_write(bitstream_t * const bitstream, const uint8_t nal_type,
|
2014-04-17 04:55:35 +00:00
|
|
|
const uint8_t temporal_id, const int long_start_code);
|
2015-03-04 11:55:06 +00:00
|
|
|
void image_checksum(const image_t *im,
|
2013-09-19 13:03:02 +00:00
|
|
|
unsigned char checksum_out[][SEI_HASH_MAX_LENGTH]);
|
|
|
|
|
|
|
|
|
2012-06-06 13:20:29 +00:00
|
|
|
|
|
|
|
#endif
|