[FFmpeg-cvslog] dnxhddata: Add tables for missing DNx100 profiles

Vittorio Giovara git at videolan.org
Thu Aug 27 09:40:20 CEST 2015


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Thu Jul 30 15:55:39 2015 +0100| [d68705c9756e6558c8e28d90b4c364f25ba72083] | committer: Vittorio Giovara

dnxhddata: Add tables for missing DNx100 profiles

1440x1080 at 8 progressive (1259) and interlaced (1260).

Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d68705c9756e6558c8e28d90b4c364f25ba72083
---

 Changelog              |    1 +
 libavcodec/dnxhddata.c |   78 +++++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 69 insertions(+), 10 deletions(-)

diff --git a/Changelog b/Changelog
index 26efbf3..20944c2 100644
--- a/Changelog
+++ b/Changelog
@@ -41,6 +41,7 @@ version <next>:
 - Intel QSV-accelerated MPEG-2 video and HEVC encoding
 - bitstream filter for converting HEVC from MP4 to Annex B
 - Intel QSV-accelerated MPEG-2 video and HEVC decoding
+- Support DNx100 (1440x1080 at 8)
 
 
 version 11:
diff --git a/libavcodec/dnxhddata.c b/libavcodec/dnxhddata.c
index 9a0f9e0..5ce6667 100644
--- a/libavcodec/dnxhddata.c
+++ b/libavcodec/dnxhddata.c
@@ -256,6 +256,50 @@ static const uint8_t dnxhd_1258_chroma_weight[] = {
     74, 74, 90, 100, 128, 125, 116, 116,
 };
 
+static const uint8_t dnxhd_1259_luma_weight[] = {
+     0, 32, 36, 37,  41,  44,  54, 60,
+    33, 34, 36, 39,  43,  51,  62, 78,
+    34, 36, 38, 41,  49,  59,  73, 79,
+    37, 38, 40, 47,  55,  66,  80, 95,
+    38, 41, 46, 54,  63,  79,  93, 96,
+    46, 47, 56, 64,  78,  90,  97, 98,
+    49, 58, 66, 78,  89,  97, 102, 98,
+    61, 65, 82, 87, 100, 104,  99, 99,
+};
+
+static const uint8_t dnxhd_1259_chroma_weight[] = {
+     0, 32, 38, 39,  47,  51,  77, 83,
+    36, 39, 41, 48,  55,  74,  85, 95,
+    39, 45, 53, 58,  72,  83, 105, 89,
+    51, 58, 66, 73,  82, 109,  92, 95,
+    57, 75, 78, 89, 105,  95,  93, 96,
+    81, 82, 99, 99,  94,  90,  97, 98,
+    83, 96, 97, 93,  89,  97, 102, 98,
+    90, 94, 92, 88, 100, 104,  99, 99,
+};
+
+static const uint8_t dnxhd_1260_luma_weight[] = {
+     0, 32, 37, 37, 40, 41, 52, 53,
+    33, 36, 36, 38, 40, 48, 49, 52,
+    34, 34, 37, 39, 44, 47, 49, 54,
+    33, 35, 38, 40, 45, 46, 54, 51,
+    34, 37, 37, 42, 44, 49, 52, 48,
+    34, 34, 38, 43, 44, 51, 50, 50,
+    33, 36, 41, 44, 51, 52, 50, 54,
+    36, 38, 44, 47, 53, 53, 54, 54,
+};
+
+static const uint8_t dnxhd_1260_chroma_weight[] = {
+     0, 32, 40, 38, 42, 40, 45, 45,
+    34, 42, 36, 43, 38, 46, 46, 49,
+    38, 35, 43, 39, 44, 47, 47, 49,
+    35, 42, 43, 42, 46, 47, 49, 52,
+    38, 43, 43, 44, 50, 49, 56, 50,
+    42, 43, 44, 50, 51, 57, 52, 53,
+    41, 45, 46, 53, 53, 56, 53, 54,
+    46, 46, 51, 49, 56, 53, 58, 58,
+};
+
 /* Used in CID 1235, 1241, 1250, 1256 */
 static const uint8_t dnxhd_1235_dc_codes[14] = {
     10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
@@ -266,17 +310,17 @@ static const uint8_t dnxhd_1235_dc_bits[14] = {
     4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
 };
 
-/* Used in CID 1237, 1238, 1242, 1243, 1251, 1252, 1253, 1258 */
+/* Used in CID 1237, 1238, 1242, 1243, 1251, 1252, 1253, 1258, 1259, 1260 */
 static const uint8_t dnxhd_1237_dc_codes[12] = {
     0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
 };
 
-/* Used in CID 1237, 1238, 1242, 1243, 1251, 1252, 1253, 1258 */
+/* Used in CID 1237, 1238, 1242, 1243, 1251, 1252, 1253, 1258, 1259, 1260 */
 static const uint8_t dnxhd_1237_dc_bits[12] = {
     3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint16_t dnxhd_1237_ac_codes[257] = {
         0,     1,     4,     5,    12,    26,    27,    56,
        57,    58,    59,   120,   121,   244,   245,   246,
@@ -313,7 +357,7 @@ static const uint16_t dnxhd_1237_ac_codes[257] = {
     65535,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_ac_bits[257] = {
      2,  2,  3,  3,  4,  5,  5,  6,  6,  6,  6,  7,  7,  8,  8,  8,
      8,  8,  9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
@@ -334,7 +378,7 @@ static const uint8_t dnxhd_1237_ac_bits[257] = {
     16,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_ac_level[257] = {
      1,  1,  2,  0,  3,  4,  2,  5,  6,  7,  3,  8,  9, 10, 11, 12,
      4,  5, 13, 14, 15, 16,  6, 17, 18, 19, 20, 21,  7, 22, 23, 24,
@@ -355,7 +399,7 @@ static const uint8_t dnxhd_1237_ac_level[257] = {
     64,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_ac_run_flag[257] = {
     0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,
@@ -376,7 +420,7 @@ static const uint8_t dnxhd_1237_ac_run_flag[257] = {
     1,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_ac_index_flag[257] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1016,7 +1060,7 @@ static const uint8_t dnxhd_1235_run[62] = {
     49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint16_t dnxhd_1237_run_codes[62] = {
        0,    4,   10,   11,   24,   25,   26,   54,
       55,   56,   57,   58,  118,  119,  240,  482,
@@ -1028,7 +1072,7 @@ static const uint16_t dnxhd_1237_run_codes[62] = {
     1018, 1019, 1020, 1021, 1022, 1023,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_run_bits[62] = {
      1,  3,  4,  4,  5,  5,  5,  6,  6,  6,  6,  6,  7,  7,  8,  9,
      9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 10, 10, 10, 10,
@@ -1036,7 +1080,7 @@ static const uint8_t dnxhd_1237_run_bits[62] = {
     10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 };
 
-/* Used in CID 1237, 1242, 1253 */
+/* Used in CID 1237, 1242, 1253, 1259, 1260 */
 static const uint8_t dnxhd_1237_run[62] = {
      1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
     17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
@@ -1164,6 +1208,20 @@ const CIDEntry ff_dnxhd_cid_table[] = {
       dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag,
       dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
       { 42, 60, 75, 115 } },
+    { 1259, 1440, 1080, 0, 417792, 417792, 4, 8,
+      dnxhd_1259_luma_weight, dnxhd_1259_chroma_weight,
+      dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
+      dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
+      dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
+      dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
+      { 63, 84, 100, 110 } },
+    { 1260, 1440, 1080, 1, 417792, 417792, 4, 8,
+      dnxhd_1260_luma_weight, dnxhd_1260_chroma_weight,
+      dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
+      dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
+      dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
+      dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
+      { 80, 90, 100, 110 } },
 };
 
 int ff_dnxhd_get_cid_table(int cid)



More information about the ffmpeg-cvslog mailing list