If you guys want a good quality, easy to download 4k test clip, then this one should be a good test for any encoder. It's a pretty clean 15 second 4k clip with camera movement, running water and ducks in motion:
+ Reply to Thread
Results 241 to 270 of 782
-
Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
-
Will we support 422 color ??
x265
changeset 6703:3a9c1fc2b742
Modify TComDataCU structure to support 422 color space format
author ashok@multicorewareinc.com
date Sat, 12 Apr 2014 18:34:20 +0530 (10 days ago)
parents 74ab24517d0e
children ae8f99512774
files source/Lib/TLibCommon/TComDataCU.cpp source/Lib/TLibCommon/TComDataCU.h source/common/ipfilter.cpp source/common/param.cpp source/common/pixel.cpp source/encoder/ratecontrol.cpp source/x265.cpp
diffstat 7 files changed, 105 insertions(+-), 24 deletions(-) [+]
line diff
1.1 --- a/source/Lib/TLibCommon/TComDataCU.cpp Sat Apr 12 18:30:43 2014 +0530
1.2 +++ b/source/Lib/TLibCommon/TComDataCU.cpp Sat Apr 12 18:34:20 2014 +0530
1.3 @@ -1353,6 +1353,10 @@ void TComDataCU:etCbfSubParts(uint32_t
1.4 setSubPart<uint8_t>(uiCbf, m_cbf[ttype], absPartIdx, depth, partIdx);
1.5 }
1.6
1.7 +void TComDataCU:etCbfPartRange (uint32_t cbf, TextType ttype, uint32_t absPartIdx, uint32_t coveredPartIdxes)
1.8 +{
1.9 + memset(m_cbf[ttype] + absPartIdx, cbf, sizeof(uint8_t) * coveredPartIdxes);
1.10 +}
1.11 void TComDataCU:etDepthSubParts(uint32_t depth)
1.12 {
1.13 /*All 4x4 partitions in current CU have the CU depth saved*/
1.14 @@ -1568,6 +1572,10 @@ void TComDataCU:etTransformSkipSubPart
1.15 memset(m_transformSkip[ttype] + absPartIdx, useTransformSkip, sizeof(uint8_t) * curPartNum);
1.16 }
1.17
1.18 +void TComDataCU:etTransformSkipPartRange(uint32_t useTransformSkip, TextType ttype, uint32_t absPartIdx, uint32_t coveredPartIdxes)
1.19 +{
1.20 + memset(m_transformSkip[ttype] + absPartIdx, useTransformSkip, sizeof(uint8_t) * coveredPartIdxes);
1.21 +}
1.22 uint8_t TComDataCU::getNumPartInter()
1.23 {
1.24 uint8_t numPart = 0;
1.25 @@ -1898,16 +1906,6 @@ void TComDataCU::deriveLeftRightTopIdxAd
1.26 outPartIdxRT = g_rasterToZscan[g_zscanToRaster[outPartIdxLT] + numPartInWidth - 1];
1.27 }
1.28
1.29 -void TComDataCU::deriveLeftBottomIdxAdi(uint32_t& outPartIdxLB, uint32_t partOffset, uint32_t partDepth)
1.30 -{
1.31 - uint32_t absIdx;
1.32 - uint32_t numPartInWidth = m_cuSize[0] >> (m_pic->getLog2UnitSize() + partDepth);
1.33 -
1.34 - absIdx = getZorderIdxInCU() + partOffset + (m_numPartitions >> (partDepth << 1)) - 1;
1.35 - absIdx = g_zscanToRaster[absIdx] - (numPartInWidth - 1);
1.36 - outPartIdxLB = g_rasterToZscan[absIdx];
1.37 -}
1.38 -
1.39 bool TComDataCU::hasEqualMotion(uint32_t absPartIdx, TComDataCU* candCU, uint32_t candAbsPartIdx)
1.40 {
1.41 if (getInterDir(absPartIdx) != candCU->getInterDir(candAbsPartIdx))
1.42 @@ -2889,7 +2887,9 @@ uint32_t TComDataCU::getCoefScanIdx(uint
1.43 dirMode = getChromaIntraDir(absPartIdx);
1.44 if (dirMode == DM_CHROMA_IDX)
1.45 {
1.46 - dirMode = getLumaIntraDir(absPartIdx);
1.47 + uint32_t lumaLCUIdx = (m_chromaFormat == CHROMA_444) ? absPartIdx : absPartIdx & (~((1<<(2*g_addCUDepth))-1));
1.48 + dirMode = getLumaIntraDir(lumaLCUIdx );
1.49 + dirMode = (m_chromaFormat == CHROMA_422) ? g_chroma422IntraAngleMappingTable[dirMode] : dirMode;
1.50 }
1.51 // TODO: 4:2:2
1.52 }
2.1 --- a/source/Lib/TLibCommon/TComDataCU.h Sat Apr 12 18:30:43 2014 +0530
2.2 +++ b/source/Lib/TLibCommon/TComDataCU.h Sat Apr 12 18:34:20 2014 +0530
2.3 @@ -303,6 +303,8 @@ public:
2.4 void setCbfSubParts(uint32_t cbfY, uint32_t cbfU, uint32_t cbfV, uint32_t absPartIdx, uint32_t depth);
2.5 void setCbfSubParts(uint32_t cbf, TextType ttype, uint32_t absPartIdx, uint32_t depth);
2.6 void setCbfSubParts(uint32_t cbf, TextType ttype, uint32_t absPartIdx, uint32_t partIdx, uint32_t depth);
2.7 + void setCbfPartRange (uint32_t cbf, TextType ttype, uint32_t absPartIdx, uint32_t coveredPartIdxes);
2.8 + void setTransformSkipPartRange(uint32_t useTransformSkip, TextType ttype, uint32_t absPartIdx, uint32_t coveredPartIdxes);
2.9
2.10 // -------------------------------------------------------------------------------------------------------------------
2.11 // member functions for coding tool information
2.12 @@ -408,9 +410,7 @@ public:
2.13
2.14 void deriveLeftRightTopIdx(uint32_t partIdx, uint32_t& partIdxLT, uint32_t& partIdxRT);
2.15 void deriveLeftBottomIdx(uint32_t partIdx, uint32_t& partIdxLB);
2.16 -
2.17 void deriveLeftRightTopIdxAdi(uint32_t& partIdxLT, uint32_t& partIdxRT, uint32_t partOffset, uint32_t partDepth);
2.18 - void deriveLeftBottomIdxAdi(uint32_t& partIdxLB, uint32_t partOffset, uint32_t partDepth);
2.19
2.20 bool hasEqualMotion(uint32_t absPartIdx, TComDataCU* candCU, uint32_t candAbsPartIdx);
2.21 void getInterMergeCandidates(uint32_t absPartIdx, uint32_t puIdx, TComMvField* mFieldNeighbours, uint8_t* interDirNeighbours, int& numValidMergeCand);
3.1 --- a/source/common/ipfilter.cpp Sat Apr 12 18:30:43 2014 +0530
3.2 +++ b/source/common/ipfilter.cpp Sat Apr 12 18:34:20 2014 +0530
3.3 @@ -380,6 +380,22 @@ namespace x265 {
3.4 p.chroma[X265_CSP_I420].filter_vsp[CHROMA_ ## W ## x ## H] = interp_vert_sp_c<4, W, H>; \
3.5 p.chroma[X265_CSP_I420].filter_vss[CHROMA_ ## W ## x ## H] = interp_vert_ss_c<4, W, H>;
3.6
3.7 +#define CHROMA_422(W, H) \
3.8 + p.chroma[X265_CSP_I422].filter_hpp[CHROMA_ ## W ## x ## H] = interp_horiz_pp_c<4, W, H * 2>; \
3.9 + p.chroma[X265_CSP_I422].filter_hps[CHROMA_ ## W ## x ## H] = interp_horiz_ps_c<4, W, H * 2>; \
3.10 + p.chroma[X265_CSP_I422].filter_vpp[CHROMA_ ## W ## x ## H] = interp_vert_pp_c<4, W, H * 2>; \
3.11 + p.chroma[X265_CSP_I422].filter_vps[CHROMA_ ## W ## x ## H] = interp_vert_ps_c<4, W, H * 2>; \
3.12 + p.chroma[X265_CSP_I422].filter_vsp[CHROMA_ ## W ## x ## H] = interp_vert_sp_c<4, W, H * 2>; \
3.13 + p.chroma[X265_CSP_I422].filter_vss[CHROMA_ ## W ## x ## H] = interp_vert_ss_c<4, W, H * 2>;
3.14 +
3.15 +#define CHROMA_422_X(W, H) \
3.16 + p.chroma[X265_CSP_I422].filter_hpp[0] = interp_horiz_pp_c<4, W, H * 2>; \
3.17 + p.chroma[X265_CSP_I422].filter_hps[0] = interp_horiz_ps_c<4, W, H * 2>; \
3.18 + p.chroma[X265_CSP_I422].filter_vpp[0] = interp_vert_pp_c<4, W, H * 2>; \
3.19 + p.chroma[X265_CSP_I422].filter_vps[0] = interp_vert_ps_c<4, W, H * 2>; \
3.20 + p.chroma[X265_CSP_I422].filter_vsp[0] = interp_vert_sp_c<4, W, H * 2>; \
3.21 + p.chroma[X265_CSP_I422].filter_vss[0] = interp_vert_ss_c<4, W, H * 2>;
3.22 +
3.23 #define CHROMA_444(W, H) \
3.24 p.chroma[X265_CSP_I444].filter_hpp[LUMA_ ## W ## x ## H] = interp_horiz_pp_c<4, W, H>; \
3.25 p.chroma[X265_CSP_I444].filter_hps[LUMA_ ## W ## x ## H] = interp_horiz_ps_c<4, W, H>; \
3.26 @@ -449,6 +465,32 @@ void Setup_C_IPFilterPrimitives(EncoderP
3.27 LUMA(16, 64);
3.28 CHROMA_420(8, 32);
3.29
3.30 + CHROMA_422_X(4, 4);
3.31 + CHROMA_422(4, 4);
3.32 + CHROMA_422(2, 4);
3.33 + CHROMA_422(4, 2);
3.34 + CHROMA_422(8, 8);
3.35 + CHROMA_422(8, 4);
3.36 + CHROMA_422(4, 8);
3.37 + CHROMA_422(8, 6);
3.38 + CHROMA_422(6, 8);
3.39 + CHROMA_422(8, 2);
3.40 + CHROMA_422(2, 8);
3.41 + CHROMA_422(16, 16);
3.42 + CHROMA_422(16, 8);
3.43 + CHROMA_422(8, 16);
3.44 + CHROMA_422(16, 12);
3.45 + CHROMA_422(12, 16);
3.46 + CHROMA_422(16, 4);
3.47 + CHROMA_422(4, 16);
3.48 + CHROMA_422(32, 32);
3.49 + CHROMA_422(32, 16);
3.50 + CHROMA_422(16, 32);
3.51 + CHROMA_422(32, 24);
3.52 + CHROMA_422(24, 32);
3.53 + CHROMA_422(32, 8);
3.54 + CHROMA_422(8, 32);
3.55 +
3.56 CHROMA_444(4, 4);
3.57 CHROMA_444(8, 8);
3.58 CHROMA_444(4, 8);
3.59 @@ -478,6 +520,7 @@ void Setup_C_IPFilterPrimitives(EncoderP
3.60
3.61 p.chroma_p2s[X265_CSP_I444] = filterConvertPelToShort_c<MAX_CU_SIZE>;
3.62 p.chroma_p2s[X265_CSP_I420] = filterConvertPelToShort_c<MAX_CU_SIZE / 2>;
3.63 + p.chroma_p2s[X265_CSP_I422] = filterConvertPelToShort_c<MAX_CU_SIZE / 2>;
3.64
3.65 p.extendRowBorder = extendCURowColBorder;
3.66 }
4.1 --- a/source/common/param.cpp Sat Apr 12 18:30:43 2014 +0530
4.2 +++ b/source/common/param.cpp Sat Apr 12 18:34:20 2014 +0530
4.3 @@ -839,8 +839,7 @@ int x265_check_params(x265_param *param)
4.4
4.5 CHECK((param->maxCUSize >> maxCUDepth) < 4,
4.6 "Minimum partition width size should be larger than or equal to 8");
4.7 - CHECK(param->internalCsp != X265_CSP_I420 && param->internalCsp != X265_CSP_I444,
4.8 - "Only 4:2:0 and 4:4:4 color spaces is supported at this time");
4.9 +
4.10
4.11 /* These checks might be temporary */
4.12 #if HIGH_BIT_DEPTH
5.1 --- a/source/common/pixel.cpp Sat Apr 12 18:30:43 2014 +0530
5.2 +++ b/source/common/pixel.cpp Sat Apr 12 18:34:20 2014 +0530
5.3 @@ -929,14 +929,32 @@ void Setup_C_PixelPrimitives(EncoderPrim
5.4 p.satd[LUMA_16x64] = satd8<16, 64>;
5.5
5.6 #define CHROMA_420(W, H) \
5.7 - p.chroma[X265_CSP_I420].addAvg[CHROMA_ ## W ## x ## H] = addAvg<W, H>; \
5.8 + p.chroma[X265_CSP_I420].addAvg[CHROMA_ ## W ## x ## H] = addAvg<W, H>; \
5.9 p.chroma[X265_CSP_I420].copy_pp[CHROMA_ ## W ## x ## H] = blockcopy_pp_c<W, H>; \
5.10 p.chroma[X265_CSP_I420].copy_sp[CHROMA_ ## W ## x ## H] = blockcopy_sp_c<W, H>; \
5.11 p.chroma[X265_CSP_I420].copy_ps[CHROMA_ ## W ## x ## H] = blockcopy_ps_c<W, H>; \
5.12 p.chroma[X265_CSP_I420].copy_ss[CHROMA_ ## W ## x ## H] = blockcopy_ss_c<W, H>; \
5.13 - p.chroma[X265_CSP_I420].sub_ps[CHROMA_ ## W ## x ## H] = pixel_sub_ps_c<W, H>; \
5.14 + p.chroma[X265_CSP_I420].sub_ps[CHROMA_ ## W ## x ## H] = pixel_sub_ps_c<W, H>; \
5.15 p.chroma[X265_CSP_I420].add_ps[CHROMA_ ## W ## x ## H] = pixel_add_ps_c<W, H>;
5.16
5.17 +#define CHROMA_422(W, H) \
5.18 + p.chroma[X265_CSP_I422].addAvg[CHROMA_ ## W ## x ## H] = addAvg<W, H * 2>; \
5.19 + p.chroma[X265_CSP_I422].copy_pp[CHROMA_ ## W ## x ## H] = blockcopy_pp_c<W, H * 2>; \
5.20 + p.chroma[X265_CSP_I422].copy_sp[CHROMA_ ## W ## x ## H] = blockcopy_sp_c<W, H * 2>; \
5.21 + p.chroma[X265_CSP_I422].copy_ps[CHROMA_ ## W ## x ## H] = blockcopy_ps_c<W, H * 2>; \
5.22 + p.chroma[X265_CSP_I422].copy_ss[CHROMA_ ## W ## x ## H] = blockcopy_ss_c<W, H * 2>; \
5.23 + p.chroma[X265_CSP_I422].sub_ps[CHROMA_ ## W ## x ## H] = pixel_sub_ps_c<W, H * 2>; \
5.24 + p.chroma[X265_CSP_I422].add_ps[CHROMA_ ## W ## x ## H] = pixel_add_ps_c<W, H * 2>;
5.25 +
5.26 +#define CHROMA_422_X(W, H) \
5.27 + p.chroma[X265_CSP_I422].addAvg[0] = addAvg<W, H * 2>; \
5.28 + p.chroma[X265_CSP_I422].copy_pp[0] = blockcopy_pp_c<W, H * 2>; \
5.29 + p.chroma[X265_CSP_I422].copy_sp[0] = blockcopy_sp_c<W, H * 2>; \
5.30 + p.chroma[X265_CSP_I422].copy_ps[0] = blockcopy_ps_c<W, H * 2>; \
5.31 + p.chroma[X265_CSP_I422].copy_ss[0] = blockcopy_ss_c<W, H * 2>; \
5.32 + p.chroma[X265_CSP_I422].copy_sp[NUM_CHROMA_PARTITIONS] = blockcopy_sp_c<W, H>; \
5.33 + p.chroma[X265_CSP_I422].copy_ps[NUM_CHROMA_PARTITIONS] = blockcopy_ps_c<W, H>;
5.34 +
5.35 #define CHROMA_444(W, H) \
5.36 p.chroma[X265_CSP_I444].addAvg[LUMA_ ## W ## x ## H] = addAvg<W, H>; \
5.37 p.chroma[X265_CSP_I444].copy_pp[LUMA_ ## W ## x ## H] = blockcopy_pp_c<W, H>; \
5.38 @@ -1005,6 +1023,32 @@ void Setup_C_PixelPrimitives(EncoderPrim
5.39 LUMA(16, 64);
5.40 CHROMA_420(8, 32);
5.41
5.42 + CHROMA_422_X(4, 4);
5.43 + CHROMA_422(4, 4);
5.44 + CHROMA_422(4, 2);
5.45 + CHROMA_422(2, 4);
5.46 + CHROMA_422(8, 8);
5.47 + CHROMA_422(8, 4);
5.48 + CHROMA_422(4, 8);
5.49 + CHROMA_422(8, 6);
5.50 + CHROMA_422(6, 8);
5.51 + CHROMA_422(8, 2);
5.52 + CHROMA_422(2, 8);
5.53 + CHROMA_422(16, 16);
5.54 + CHROMA_422(16, 8);
5.55 + CHROMA_422(8, 16);
5.56 + CHROMA_422(16, 12);
5.57 + CHROMA_422(12, 16);
5.58 + CHROMA_422(16, 4);
5.59 + CHROMA_422(4, 16);
5.60 + CHROMA_422(32, 32);
5.61 + CHROMA_422(32, 16);
5.62 + CHROMA_422(16, 32);
5.63 + CHROMA_422(32, 24);
5.64 + CHROMA_422(24, 32);
5.65 + CHROMA_422(32, 8);
5.66 + CHROMA_422(8, 32);
5.67 +
5.68 CHROMA_444(4, 4);
5.69 CHROMA_444(8, 8);
5.70 CHROMA_444(4, 8);
6.1 --- a/source/encoder/ratecontrol.cpp Sat Apr 12 18:30:43 2014 +0530
6.2 +++ b/source/encoder/ratecontrol.cpp Sat Apr 12 18:34:20 2014 +0530
6.3 @@ -45,8 +45,7 @@ static inline uint32_t acEnergyVar(TComP
6.4 /* Find the energy of each block in Y/Cb/Cr plane */
6.5 static inline uint32_t acEnergyPlane(TComPic *pic, pixel* src, int srcStride, int bChroma, int colorFormat)
6.6 {
6.7 - /* Support only 420 and 444 color spaces */
6.8 - if (colorFormat == X265_CSP_I420 && bChroma)
6.9 + if ((colorFormat != X265_CSP_I444) && bChroma)
6.10 {
6.11 ALIGN_VAR_8(pixel, pix[8 * 8]);
6.12 primitives.luma_copy_pp[LUMA_8x8](pix, 8, src, srcStride);
7.1 --- a/source/x265.cpp Sat Apr 12 18:30:43 2014 +0530
7.2 +++ b/source/x265.cpp Sat Apr 12 18:34:20 2014 +0530
7.3 @@ -572,11 +572,7 @@ bool CLIOptions:arse(int argc, char **
7.4 x265_log(param, X265_LOG_ERROR, "unable to open input file <%s>\n", inputfn);
7.5 return true;
7.6 }
7.7 - if (info.csp != X265_CSP_I420 && info.csp != X265_CSP_I444)
7.8 - {
7.9 - x265_log(param, X265_LOG_ERROR, "Only i420 and i444 color spaces are supported in this build\n");
7.10 - return true;
7.11 - }
7.12 +
7.13 if (info.depth < 8 || info.depth > 16)
7.14 {
7.15 x265_log(param, X265_LOG_ERROR, "Input bit depth (%d) must be between 8 and 16\n", inputBitDepth);
-
-
am now unable to get any of the 32bit versions to work on any of my computers: amd dual core desktop pc, dell intel core i3, dell intel core i7, and my netbook intel atom cpu, all running xp home and xp pro. was there an updated .dll to download that i missed in any of these discussions ?
-
I downloaded the Elephant's Dream uncompressed PNG images and created an uncompressed 4 second avi that was 213 MB that I used as source file to create an x264 avi at ultrafast preset, a DivX265 mkv at fastest preset, a x265 mkv at ultrafast preset from both the latest Daemon404 64 bit build and Snowfag's latest 64 bit build. Here are the results...
-
Here is a vertical filmstrip of just the screenshots for easier viewing...
-
-
@vhelp: qre you using MinGW builds or are you trying the builds that Marchand is posting?
-
-
DivX still ahead in speed for the same quality!
-
regarding x265_0.9+91_MinGW.7z
thank you selur, that build works on both my intel netbook and core i3 computers. can't test the core i7 because my job refreshed that pc to their default state with new criterias. now i can't install avisynth on it beause they locked the windows and subfolders (system32, etc) and it can't write the dll files there. to bad there's no portable version. anyway. at least the these two pc's are working.
where can i download those builds from ? the new repository here points to x265 russian site, and they only house the win7 64bit versions. -
I build those myself using: https://github.com/jb-alvarado/media-autobuild_suite
-
-
I wonder ... is it possible for the difficult areas to apply 10bit lattice or grain for lifting qualities - as the transfer of useful noise
-
-
i'm having trouble getting the correct levels, not trying to make levels, but obtain them when i bring in the master_source to compare it against the encodes i completed. here is my encoding setup:
1. captured to .ts videos. the "original_master_source"
2. open in avisynth 2.58, the "master_source"
3. send to x265.exe encoder and encoded to .hm10 files
4. add the .hm10 video inside avisynth script (i use scriptclip() to set visual frame numbers)
5. load the script inside virtualdub
6. quickly review sections of encodes for frames i want to analyize and compare to the master_source with my video analizer utility
7. copy (ctrl+1) the frame(s) and paste them into the video_utility, a custom analyizing utility i am working on to incorporate in a gui4hevc app.
8. using the master_source, compare the frame(s) against it. thus:
where we rename "master_source" to M, for simplicity
and pull frame 100, from M and from clips A and B for the comparisons
finally, using video_utility, visually compare M against A and B, and A and B, etc.
note, video_utility can be your own device to measure, analyize, compare, etc.
when i run these steps above, the levels seem to be off. one frame is brighter than the other. i don't know what color specs x265.exe is using. maybe that would help me figure it out. but it would be nice if someone has already done this and can save me the hassle. thank you. i will post some samples of the issue later when i get home. maybe will start another topic, i don't know. -
I probably need new reading glasses because I'm not quite seeing it. It's not the usual macro blocking that I'm used to seeing on low bit rate x264 files, anyway. The encodes are 8 bit since I'm not sure my computer will handle 10 bit or 16 bit. If so, my speeds will probably drop drastically for x265.
I was surprised at the quality using the fastest presets for each encoder. Using high quality input sources seems to really help. Here is a screenshot of the original uncompressed avi and the downloaded png image for the above frame. And yes, MCW needs to concentrate on speed if they are going to seriously compete with DivX265. They are way behind. I noticed a new version of the DivX Converter so we could possibly see an even better DivX265 encoder in the near future. -
one frame is brighter than the other.
And yes, MCW needs to concentrate on speed if they are going to seriously compete with DivX265. -
that's how people have different priorities, personally I'm more concerned about the detail preservation of fine details.Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
-
If you're creating video for a studio to be shown on the big screen yea (you'll be getting paid by the hour anyway so the longer it takes, the more money you'll make and the longer you will have a job). That's the only place that you would be able to view UHD video in all it's glory but for the average video enthusiast who will not be watching anything on more than a 52" screen then faster encodes are more important than whether you can tell if it's a zit on a girls ass or an encoding flaw.
Encoding video for my personal use, I wouldn't use H265 at all. The only advantage of x265 over x264 is that you can create the same video at a much smaller file size. With HDDs the size they are today, there is no real need for smaller file sizes. Ten or 15 years ago but not today. Add to the fact that you can create the same video with x264 in an hour that it would take days to encode with x265 then there is absolutely no reason for me encoding with x265 except to do these little tests.
I can hardly tell the difference between the uncompressed png images that I downloaded, the uncompressed avi and any of the files that were stepped on with the x265 and DivX265 encoders at the fastest presets and lowest bit rates and I'm sure that most consumers who think that DVD looks just fine on a 52" TV would care less whether it had a 2,000 or 40,000 bit rate. If you are trying to get the same bitrate out of 265 that you get with 264 then what is the use of using x265 at all?
If MCW can create an encoder that can encode 1920x1080 at 15-20 fps at medium preset then I might be impressed but when you can't encode the same file at 10 fps at ultrafast preset then they need to go back to the drawing board. They seem to be going backwards. There seemed to be some promise back in October and even more in December when encode speeds seemed to double. Quality has always seemed to be there to me but encoding speeds are unbearable for anything more than a 10 or 20 second clip. -
Since your main aim is speed, why stick with the preset and not start with something like:
Code:x265 --preset ultrafast --input - --input-res 1920x1080 --fps 23.976 --no-wpp --ctu 16 --max-merge 1 --no-open-gop --bframes 0 --qp 32 --rd 0
a. you still got the quality that is enough for you
b. you still get an acceptable speed
seeing how many speed comparisons etc. you have posted over the past few month I would have guessed that you would have done something this trivial. Or did you do something like this and simply didn't want to share your findings.
Personally I only do a few test clips here and there using the placebo preset and slower settings with x265, since:
a. x265 lacks 2pass rate control
b. I don't like the fine detail loss
Cu Selur
Ps.: the 26+fps are on a i7 4770k (normal clocking), so depending on your hardware you will get less speed -
Sorry but your command was about three times slower than just the ultrafast preset and nowhere near your 26 fps. I know your CPU should smoke my q6600 but 15 times faster .
[i] VideoEnc: yuv [info]: 1920x1080 fps 24000/1000 i420 unknown frame count
[i] VideoEnc: x265 [info]: HEVC encoder version 0.9+114-c630b0b393ee
[i] VideoEnc: x265 [info]: build info [Windows][GCC 4.6.3][64 bit] 8bpp
[i] VideoEnc: x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle
[i] VideoEnc: x265 [info]: Concurrently encoded frames : 4
[i] VideoEnc: x265 [info]: Main profile, Level-4 (Main tier)
[i] VideoEnc: x265 [info]: CU size : 16
[i] VideoEnc: x265 [info]: Max RQT depth inter / intra : 1 / 1
[i] VideoEnc: x265 [info]: ME / range / subpel / merge : dia / 25 / 0 / 1
[i] VideoEnc: x265 [info]: Keyframe min / max / scenecut : 24 / 250 / 0
[i] VideoEnc: x265 [info]: Lookahead / bframes / badapt : 10 / 0 / 0
[i] VideoEnc: x265 [info]: b-pyramid / weightp / weightb / refs: 0 / 0 / 0 / 1
[i] VideoEnc: x265 [info]: Rate Control / AQ-Strength / CUTree : CQP-32 / 0.0 / 0
[i] VideoEnc: x265 [info]: tools: cfm esd rd=0 lft
[i] VideoEnc: encoded 88 frames in 41.31s (2.13 fps), 3214.01 kb/s
[i] VideoEnc:
[i] VideoEnc: x265 [info]: frame I: 1 Avg QP:29.00 kb/s: 1555.58
[i] VideoEnc: x265 [info]: frame P: 87 Avg QP:32.00 kb/s: 3233.07
[i] VideoEnc: x265 [info]: global : 88 Avg QP:31.97 kb/s: 3214.01
[i] VideoEnc: x265 [info]: consecutive B-frames: 100.0%
[i] Mux: mkvmerge v6.9.1 ('Blue Panther') 64bit built on Apr 18 2014 18:23:38
Complete name : F:\Temp 3\New Folder\Ready\x265-64bit-04-25.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 1.41 MB
Duration : 3s 667ms
Overall bit rate : 3228 Kbps
Encoded date : UTC 2014-04-26 00:23:36
Writing application : mkvmerge v6.9.1 ('Blue Panther') 64bit built on Apr 18 2014 18:23:38
Writing library : libebml v1.3.0 + libmatroska v1.4.1
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Codec ID : V_MPEGH/ISO/HEVC
Duration : 3s 667ms
Bit rate : 3164 Kbps
Width : 1920 pixels
Height : 1080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 24.000 fps
Bits/(Pixel*Frame) : 0.064
Stream size : 1.38 MB (98%)
Default : Yes
Forced : No
I figured that the presets would be fine since they were based off of the settings that you and Tom had posted right before presets starting working on their own which I believe was sometime in December and about the same time that we saw the first major (and only) increase in encoding speed. -
here's what I got using ultrafast:
"G:\Hybrid\x265.exe" --preset ultrafast --input - --input-res 1920x1080 --fps 23.976 --frames 171452 --qp 32 --colormatrix bt470bg --output "H:\Temp\test_19_50_28_5810_03.265"
x265 [info]: HEVC encoder version 0.9+91-ea597d46f30e
x265 [info]: build info [Windows][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [info]: WPP streams / pool / frames : 34 / 8 / 3
x265 [info]: Main profile, Level-4 (Main tier)
x265 [info]: CU size : 32
x265 [info]: Max RQT depth inter / intra : 1 / 1
x265 [info]: ME / range / subpel / merge : dia / 25 / 0 / 2
x265 [info]: Keyframe min / max / scenecut : 23 / 250 / 0
x265 [info]: Lookahead / bframes / badapt : 10 / 4 / 0
x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 0 / 0 / 1
x265 [info]: Rate Control / AQ-Strength / CUTree : CQP-32 / 0.0 / 0
x265 [info]: tools: cfm esd rd=3 lft
encoded 171452 frames in 5284.28s (32.45 fps), 703.20 kb/s
x265 [info]: frame I: 686 Avg QP:29.00 kb/s: 5819.64
x265 [info]: frame P: 33606 Avg QP:32.00 kb/s: 1413.19
x265 [info]: frame B: 137160 Avg QP:33.75 kb/s: 503.66
x265 [info]: global : 171452 Avg QP:33.39 kb/s: 703.20
x265 [info]: consecutive B-frames: 0.0% 0.0% 0.0% 0.0% 100.0%
finished after 01:28:04.537
Created H:\Temp\test_19_50_28_5810_03.265 (600.108 MB) -
I know this animated GIF is not accurate because it only supports 256 colors, but it still shows differences in detail between UltraFast and Medium presets. This animation is a 100% crop:
Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
Similar Threads
-
[HEVC] x265.EXE: mingw builds
By El Heggunte in forum Video ConversionReplies: 2221Last Post: 9th Feb 2021, 01:18 -
HEVC Encoder by Strongene Lentoid
By vhelp in forum Video ConversionReplies: 126Last Post: 19th May 2017, 12:58 -
theX.265 (a free HEVC) codec. Have you ever tried that HEVC encoder? (HELP)
By Stears555 in forum Video ConversionReplies: 41Last Post: 16th Sep 2013, 11:15 -
HEVC x265 Decoder
By enim in forum Newbie / General discussionsReplies: 5Last Post: 19th Aug 2013, 12:58 -
MulticoreWare Annouces x265/HEVC Mission Statement
By enim in forum Latest Video NewsReplies: 4Last Post: 9th Aug 2013, 22:09